访问应用于数据框的函数的嵌套列表项

问题描述 投票:0回答:3

我正在尝试将字符串拆分为一列...

> 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的正确方法?

r
3个回答
0
投票

如果arptCode值为行名,则可以将它们转换为列。

library(tidyverse)
df.arpt %>% 
  rownames_to_column(var = "arptCode")

如果不是行名,则可以使用separate

library(tidyverse)
df.arpt %>% 
  separate(arpt, into = c('arptCode', 'aprtID'))

0
投票

怎么样:

df<-data.frame(arpt =c("CMH 39402", "IAH 97571", "DAL 67191", "HOU 07614", "OKC 11127")) 
tidyr::separate(df, arpt, into = c("artpCode", "arptID"))

0
投票

因为字符串都是固定长度的,所以我可以使用substr函数来解决问题。但是,如果函数的结果为列表,我仍然不知道解决方案是什么。

© www.soinside.com 2019 - 2024. All rights reserved.