如何解决如何在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"
在这里,我们为每个'\n'
捕获了string
之间的倒数第二个值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。