' colsplit'出错功能?

时间:2016-02-04 05:42:26

标签: r reshape

我正在尝试使用reshape包中的transformcolsplit将数据帧的列拆分为2列。我不明白我做错了什么。这是一个例子......

library(reshape)
df1 <- data.frame(col1=c("x-1","y-2","z-3"))

现在,我正尝试将col1分为col1.acol1.b分隔符&#39; - &#39;。以下是我的代码...

df1 <- transform(df1,col1 = colsplit(col1,split='-',names = c('a','b')))

当我做View(df1)时,现在在我的RStudio中,我确实看到col1.a和col1.b以我想要的方式分开。

但是当我跑... df1$col1.ahead(df1$col1.a)我得到NULL。显然我无法对这些拆分列进行任何进一步的操作。这究竟出了什么问题?

1 个答案:

答案 0 :(得分:4)

colsplit返回一个列表,将这些列表分配给数据框中的多个列的最简单(和惯用)方法是使用[<-

例如

df1[c('col1.a','col1.b')] <- colsplit(df1$col1,'-',c('a','b'))

在变换中执行此操作会更加困难(请参阅Assign multiple new variables on LHS in a single line in R