我有一个格式来分离,其中我将有这样的数据:柱拆分
df = data.frame(id=c(1,2),name=c('A~B~C','A~B~D'),value=c('1~2~3','1~~2'))
id name value
1 A~B~C 1~2~3
2 A~B~D 1~~2
从而有望具有以下输出,其中列名是原始列名,后跟文本在名称列:
id value_A value_B value_C value_D
1 1 2 3
2 1 2
我设法通过使用许多嵌套的for循环来对我行的数据行处理以实现分裂。它适用于小样本数据,但一旦数据变大,时间就成了问题。
此外,可能有多个值列,但它们都应映射到同一名称列中。 输出示例:
id value_A value_B value_C value1_A value1_B value1_C
1 1 2 3 1 2 3
2 1 2 3 1 2 3
如果让我说我有一个value1和value2列。我可以对''dcast'做些什么改变来使其能够投射这些值?我知道我可以使用'cSplit(df,c('name','value1','value2'),'〜','long')'分割3列。 – kaexch