【发布时间】:2015-05-01 21:32:11
【问题描述】:
我在使用 cbind 时遇到问题。在使用 cbind 之前,对象是两个字符向量的 data.frame。
使用 cbind 添加列后,data.frame 对象将类更改为矩阵。我试过 as.vector,将 h 声明为空字符向量等,但无法修复它。感谢您的任何建议和帮助。
output <- data.frame(h = character(), st = character()) ## empty dataframe
st <- state.abb
h <- (rep("a", 50))
output <- cbind(output$h, h) ## output changes to matrix class here
output <- cbind(output, st) ## adding a second column
【问题讨论】:
-
?cbind说如果至少一个参数是数据框,其余是向量或矩阵,则将使用数据框方法。您将两个向量传递给cbind,因此结果不是数据框 -
谢谢。这就是为什么我首先创建了空的 data.frame,认为这样可以在我不断向其中添加其他列的同时将其保留为数据框。
-
output是一个数据框。output$h不是数据框。因此cbind(output$h, h)不会调用任何特定于数据帧的魔法。