R - 总结其他两个因子水平的每个组合的因子水平

标签 r dataframe

假设我有一个数据框 D1有 4 列:

  • F1包含因素[A, B]
  • F2包含因素[P, Q]
  • F3包含因素[X, Y]
  • F4包含数值

如何将其转换为新的三列数据框,D2 :

  • F1F2和以前一样
  • F3包含 [X, Y, Z] 的所有级别上的前一行中所有值的平均值。并将其存储在新的数据框中。

我知道如何获得每个单因素水平的平均值,但我想对其他两个水平的叉积执行此操作。

示例 给定数据框:

F1  F2  F3  F4
 A   P   X   2
 A   P   Y   4
 A   Q   X   3
 A   Q   Y   5
 B   P   X   1.5
 B   P   Y   2.5
 B   Q   X   0
 B   Q   Y   1

将输出以下数据帧:

F1  F2  F3
 A   P   3
 A   Q   4
 B   P   2
 B   Q   0.5

理想情况下,无论涉及的因素有多少级别,这都应该有效

最佳答案

我们可以尝试

library(data.table)
setDT(df1)[, list(F3=mean(F4)) , .(F1, F2)]
#    F1 F2  F3
#1:  A  P 3.0
#2:  A  Q 4.0
#3:  B  P 2.0
#4:  B  Q 0.5

library(dplyr)
df1 %>%
    group_by(F1, F2) %>%
    summarise(F3= mean(F4))
#  F1    F2    F3
#  (chr) (chr) (dbl)
#1     A     P   3.0
#2     A     Q   4.0
#3     B     P   2.0
#4     B     Q   0.5

aggregate(F4~F1+F2, df1, mean)

关于R - 总结其他两个因子水平的每个组合的因子水平,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34727659/

相关文章:

r - 使用 ggplot 将变化绘制为值之间的条形图

r - 从大数据坐标集中获取时区的最快方法(一百万个坐标或更多)

r - 计算 R 中矩阵的永久值

python - 使用 .replace() 交换值的 Pandas 怪异行为

python - pandas.DataFrame 列中值组合的可能性

python - 避免 Pandas 中 pd.to_datetime 的错误

r - 在 R 中将重音符号转换为 ASCII

r - 为什么更新数据表后数据表中的 R/Shiny 输入无法正常工作?

scala - 分组后将Spark DataFrame的行聚合为String

dataframe - Julia 中的动态函数名称定义.. 可能吗?