R 字符串拆分并压缩为空 space
R string split and compress empty space
这应该是一个简单的问题,但我想不出来。我正在尝试使用给定的变量列表来选择数据变量,但是,应用字符串拆分我得到 8 而不是 5。显然,额外的空格被拆分为 1、3、5 的空变量。关于如何解决这个问题的任何提示?
list <- " ethnicity_source_value race_source_value gender_source_value dx_age site"
unlist(strsplit(list, " "))
[1] "" "ethnicity_source_value" ""
[4] "race_source_value" "" "gender_source_value"
[7] "dx_age" "site"
字符串已经有前导space,所以我们用trimws
去掉那些leading/lagging space,然后用strsplit
和split
作为一个或多个 spaces (\s+
)。单词之间有可能不止一个space。
unlist(strsplit(trimws(list), "\s+"))
[1] "ethnicity_source_value" "race_source_value" "gender_source_value" "dx_age"
[5] "site"
或者另一个选项是 scan
,它会自动删除白色space
scan(text = list, what = "", quiet = TRUE)
[1] "ethnicity_source_value" "race_source_value" "gender_source_value" "dx_age"
[5] "site"
我们也可以使用 stringr
包中的 str_squish
; str_squish()
还减少了字符串中的重复空格:
library(stringr)
unlist(strsplit(str_squish(list), " "))
[1] "ethnicity_source_value" "race_source_value"
[3] "gender_source_value" "dx_age"
[5] "site
这应该是一个简单的问题,但我想不出来。我正在尝试使用给定的变量列表来选择数据变量,但是,应用字符串拆分我得到 8 而不是 5。显然,额外的空格被拆分为 1、3、5 的空变量。关于如何解决这个问题的任何提示?
list <- " ethnicity_source_value race_source_value gender_source_value dx_age site"
unlist(strsplit(list, " "))
[1] "" "ethnicity_source_value" ""
[4] "race_source_value" "" "gender_source_value"
[7] "dx_age" "site"
字符串已经有前导space,所以我们用trimws
去掉那些leading/lagging space,然后用strsplit
和split
作为一个或多个 spaces (\s+
)。单词之间有可能不止一个space。
unlist(strsplit(trimws(list), "\s+"))
[1] "ethnicity_source_value" "race_source_value" "gender_source_value" "dx_age"
[5] "site"
或者另一个选项是 scan
,它会自动删除白色space
scan(text = list, what = "", quiet = TRUE)
[1] "ethnicity_source_value" "race_source_value" "gender_source_value" "dx_age"
[5] "site"
我们也可以使用 stringr
包中的 str_squish
; str_squish()
还减少了字符串中的重复空格:
library(stringr)
unlist(strsplit(str_squish(list), " "))
[1] "ethnicity_source_value" "race_source_value"
[3] "gender_source_value" "dx_age"
[5] "site