【问题标题】:apply rbind for all column of a data frame in r对 r 中数据框的所有列应用 rbind
【发布时间】:2017-01-15 03:28:54
【问题描述】:

我有一个这样的数据框:

a <- 1:5
b <- c("a","b","c","d","e")
c <- c(15,49,41,29,7)

df1 <- data.frame(a,b,c)

我想通过 r 绑定来创建一个列。 目前我正在这样做:

x <- as.data.frame(df1$a)
y <- as.data.frame(df1$b)
z <- as.data.frame(df1$c)

colnames(x)[1] <- "x"
colnames(y)[1] <- "x"
colnames(z)[1] <- "x"

e <- rbind(x,y,z)

但问题是,如果列数很大,如 50-60,则很难做到这一点。 需要帮助...

【问题讨论】:

  • 或许你应该解释一下你为什么要做这样的事情。如果您的不同列不属于同一类(如您的示例中),那么融合它们是非常“危险的”
  • @Cath 请告诉我课程是否相同该怎么办。
  • 如果所有列都属于同一类型,您只需取消列出您的 data.frame (unlist(df1)) 即可获取包含所有值的向量。我认为您不需要 1 列 data.frame,但我们在这里缺少一些上下文
  • @Sotos 你为什么要删除你的答案?它工作正常..
  • 我没有删除我的答案,但你真的应该小心这样的操作,因为它们可能会在路上引起问题

标签: r rbind rscript


【解决方案1】:

您可以使用unlist 将其强制转换为向量,即unlist(df1),但您必须确保没有任何因子列,并且请记住,这样做是在强制您的数字列到字符。

对于您上面的示例,这将不起作用,因为 df1$b 是一个因素。您必须先将其转换为字符。

【讨论】:

  • 其实b是一个因素
  • @Cath 确实如此。转换为.character
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-19
  • 1970-01-01
  • 2016-05-12
  • 1970-01-01
  • 2021-06-12
  • 1970-01-01
  • 2021-08-28
相关资源
最近更新 更多