【问题标题】:R - creating dataframe from colMeans functionR - 从 colMeans 函数创建数据框
【发布时间】:2015-09-21 17:39:35
【问题描述】:

我一直在尝试从我的原始数据帧创建一个数据帧,其中新数据帧中的行将代表旧数据帧每 20 行的平均值。我发现了一个名为 colMeans 的函数,它可以很好地完成这项工作,唯一仍然存在的问题是如何将结果向量更改回数据帧,以便进一步分析。

我的 colMeans 代码:(我的原始数据框中的matrix1 转换为矩阵,这是我设法让它工作的唯一方法)

a<-colMeans(matrix(matrix1, nrow=20));

但在这里我得到了一个数字序列,它将所有结果串联在一个列中(如果我尝试例如 as.data.frame(a))。我应该如何将此结果返回到数据框中,其中每列仅包含特定列名的结果,而不是所有平均值。

希望我的问题很清楚,感谢您的帮助。

【问题讨论】:

  • 如果我们想要单独的列as.data.frame.list(a)data.frame(as.list(a)) 相同,您可以使用data.frame(Col1=a) 换行以获得单个列
  • 这仅命名包含所有结果的列。我正在寻找一种解决方案,其中每个新列将仅包含与其相关的观察结果,而不是结果/行
  • 你试过as.data.frame.list(a)吗?无论如何,它对我有用m1 &lt;- matrix(1:20, ncol=4);a &lt;- colMeans(m1); str(as.data.frame.list(a))# 'data.frame': 1 obs. of 4 variables:
  • 这行得通,是的。但是当我尝试 a
  • 谢谢,这是完美的。我认为可以直接用 colmeans 完成。再次感谢。

标签: r dataframe


【解决方案1】:

基于methods('as.data.frame')as.data.frame.list 是将vector 的每个元素转换为data.frame 的列的选项

as.data.frame.list(a)

数据

m1 <- matrix(1:20, ncol=4, dimnames=list(NULL, paste0('V', 1:4)))
a <- colMeans(m1)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    • 2020-09-07
    • 1970-01-01
    相关资源
    最近更新 更多