【发布时间】: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 <- matrix(1:20, ncol=4);a <- colMeans(m1); str(as.data.frame.list(a))# 'data.frame': 1 obs. of 4 variables: -
这行得通,是的。但是当我尝试 a
-
谢谢,这是完美的。我认为可以直接用 colmeans 完成。再次感谢。