簡體   English   中英

如何在 R 中拆分字符串並保存為數據框?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM