我想创建一个数据框,其中df1值的平均值和df2值的平均值作为新数据框中的列 . 我可以得到要打印的值
for (i in samples) {
print(c(with(df1, mean(d18_VSMOW[Sample == i]))))
}
但我无法将结果导入数据框4
df4=
Sample Mean1 Mean2
12adk9 # #
12adk12 # #
12adk20 # #
我有与df1中显示的样本号相关的数据
df1=
Sample d18_VSMOW
12adk9 12.27
12adk9 12.15
12adk9 11.78
12adk9 12.21
12adk9 12.52
12adk9 12.28
12adk12 10.7
12adk12 11.15
12adk12 11.24
12adk20 11.16
12adk20 11.14
和更多数据共享样本名称,但具有不同的值,如df2和不同的行数
df2 =
Sample d18_VSMOW
12adk9 15.27
12adk9 15.15
12adk9 17.78
12adk9 19.21
12adk9 20.52
12adk9 22.28
12adk12 16.7
12adk12 15.15
12adk12 16.24
12adk20 19.16
12adk20 19.14
12adk20 20.02
12adk20 21.02
12adk20 22.02
12adk20 23.02
12adk20 24.02
我有第三个包含所有样本名称的数据框:
samples =
Sample
12adk9
12adk12
12adk20
1 回答
aggregate
函数对你的情况会更好 . 首先,按主题计算df1
的均值,然后对df2
执行相同的处理 . 然后可以将其结果合并在一起 .如果
df1
中的样本多于df2
,则可能需要查看merge
的all.x
或all.y
参数,这些参数强制x
或y
(在您的情况下为df1means
和df2means
)中的所有行都包含在最终结果中 .