'colsplit' 函数出错?

Error in 'colsplit' function?

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

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

现在我试图在分隔符“-”处将 col1 拆分为 col1.acol1.b。以下是我的代码...

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

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

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

colsplit returns 一个列表,将它们分配给数据框中的多个列的最简单(惯用)方法是使用 [<-

例如

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

在转换中执行此操作会困难得多(参见 Assign multiple new variables on LHS in a single line in R