[英]How to split strings and save as data frame in R?
我正在尝试根据每个字符串包含的新行数来拆分字符串。 如果字符串包含两个新行,我只想要字符串右侧的前两个字符串。 如果没有,那么只需拆分字符串并将它们保存在数据框中。
我在下面有一个示例数据:
data<-data.frame(Info=NA,Variable=NA)
strings<-c(" Fulton Allem \n Full Name"," 5 ft, 11 in\n 180 cm\n Height","215 lbs\n 97 kg\n Weight")
我想要以下结果:
Info Variable
Fulton Allem Full Name
180 cm Height
97 kg Weight
这是我的试验:
splitted<-stri_split_regex(string,"\n")
但这不适用于带有两个新行的字符串。 体重和身高的单位是两个,但测量值相同。 因此,我想得到公斤的体重和厘米的身高。
请注意,字符串可以是动态的。 每个人的信息各不相同。 此外,其中一些不包含此类信息。 所以我不能使用正则表达式来提取这些字符串。
您可以使用str_match
中的stringr
尝试以下操作:
stringr::str_match(strings, '(?:.*\n)?\\s(.*)\n\\s(.*)')[, -1]
# [,1] [,2]
#[1,] "Fulton Allem " "Full Name"
#[2,] "180 cm" "Height"
#[3,] "97 kg" "Weight"
在这里,我们为每个string
捕获'\n'
之间的最后一个和倒数第二个值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.