如何在R中拆分字符串并另存为数据帧?

如何在R中拆分字符串并另存为数据帧?,r,regex,string,character,R,Regex,String,Character,我试图根据每个字符串包含的新行数拆分字符串。如果字符串包含两个新行,则只需要字符串右侧的前两个字符串。如果没有,则只需拆分字符串并将其保存在数据帧中 我有一个样本数据如下: 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\

我试图根据每个字符串包含的新行数拆分字符串。如果字符串包含两个新行,则只需要字符串右侧的前两个字符串。如果没有,则只需拆分字符串并将其保存在数据帧中

我有一个样本数据如下:

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")
这是我的审判:

splitted<-stri_split_regex(string,"\n")

splitted您可以从
stringr
使用
stru match
尝试以下操作:

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'
之间的最后一个和第二个最后一个值,谢谢您的帮助。我得到了这个错误。stri_match_first_regex(str,regex,…)中出错:缺少参数“regex”,没有默认值。是否确实正确复制了代码?是否缺少逗号?你能再试一次吗?
stringr::str_match(strings, '(?:.*\n)?\\s(.*)\n\\s(.*)')[, -1]

#        [,1]            [,2]       
#[1,] "Fulton Allem " "Full Name"
#[2,] "180 cm"        "Height"   
#[3,] "97 kg"         "Weight"