'colsplit'函数出错?

Gau*_*rav 2 r reshape

我正在尝试使用reshape软件包transformcolsplitfrom reshape软件包将数据框的一列分为2列。我不明白我在做什么错。这是一个例子

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

现在,我尝试将分隔col1col1.acol1.b在分隔符“-”处。以下是我的代码...

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

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

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

mne*_*nel 5

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

例如

df1[c('col1.a','col1.b')] <- colsplit(df1$col1,'-',c('a','b'))
Run Code Online (Sandbox Code Playgroud)

在转换中很难做到这一点(请参阅R的一行中在LHS上分配多个新变量