【发布时间】:2014-10-13 14:54:43
【问题描述】:
我有一个如下数据集:
Country Region Molecule Item Code
IND NA PB102 FR206985511
THAI AP PB103 BA-107603 / F000113361 / 107603
LUXE NA PB105 1012701 / SGP-1012701 / F041701000
IND AP PB106 AU206985211 / CA-F206985211
THAI HP PB107 F034702000 / 1010701 / SGP-1010701
BANG NA PB108 F000007970/25781/20009021
我想根据/ 上ITEMCODE 列中的字符串值进行拆分,并为每个条目创建一个新行。
例如,所需的输出将是:
Country Region Molecule Item.Code
IND NA PB102 FR206985511
THAI AP PB103 BA-107603
THAI AP PB103 F000113361
THAI AP PB103 107603
LUXE NA PB105 1012701
LUXE NA PB105 SGP-1012701
LUXE NA PB105 F041701000
IND AP PB106 AU206985211
IND AP PB106 CA-F206985211
THAI HP PB107 F034702000
THAI HP PB107 1010701
THAI HP PB107 SGP-1010701
BANG NA PB108 F000007970
BANG NA PB108 25781
BANG NA PB108 20009021
我试过下面的代码
library(splitstackshape)
df2=concat.split.multiple(df1,"Plant.Item.Code","/", direction="long")
但出现错误
"Error: memory exhausted (limit reached?)"
当我尝试strsplit() 时,我收到以下错误消息。
Error in strsplit(df1$Plant.Item.Code, "/") : non-character argument
【问题讨论】:
-
对于第二个错误,您可以使用
strsplit(as.character(df1$Plant.Item.Code, "/")假设列是factor -
我在下面赞同大卫的回答。它会更有效率。您正在使用的当前函数依赖于
reshape函数,该函数速度较慢并且可能会遇到内存问题。
标签: r split dataframe strsplit