我正在尝试将字符串拆分为一列...
> df.arpt
arpt
1 CMH 39402
2 IAH 97571
3 DAL 67191
4 HOU 07614
5 OKC 11127
...并将其分成两个新列,结果看起来像这样...
> df.arpt
arpt arptCode arptID
1 CMH 39402 CMH 39402
2 IAH 97571 IAH 97571
3 DAL 67191 DAL 67191
4 HOU 07614 HOU 07614
5 OKC 11127 OKC 11127
我真的希望这样的事情成为可能...
> df.arpt$arptCode <- strsplit(df.arpt$arpt, " ")[[...]][1]
> df.arpt$arptID <- strsplit(df.arpt$arpt, " ")[[...]][2]
...其中代码中的...
表示“对于数据帧中的每个记录”。
关于此问题的任何建议? (我想坚持使用基本R /“开箱即用”的R,而不是更高级别的软件包。)我是否在考虑使用R的正确方法?
如果arptCode值为行名,则可以将它们转换为列。
library(tidyverse)
df.arpt %>%
rownames_to_column(var = "arptCode")
如果不是行名,则可以使用separate
。
library(tidyverse)
df.arpt %>%
separate(arpt, into = c('arptCode', 'aprtID'))
怎么样:
df<-data.frame(arpt =c("CMH 39402", "IAH 97571", "DAL 67191", "HOU 07614", "OKC 11127"))
tidyr::separate(df, arpt, into = c("artpCode", "arptID"))
因为字符串都是固定长度的,所以我可以使用substr
函数来解决问题。但是,如果函数的结果为列表,我仍然不知道解决方案是什么。