[英]calculate mean grouped by col number
我有兩個數據df_value
和df_num
。 df_num
具有兩列: row
和col
,它們是df_value
中滿足特定條件的值的行號和列號。 我想按df_num
的col
計算均值組。
我被卡在組col
。
df_value<- data.frame('a'=1:3,'b'=2:4,'c'=1:3,'d'=3:5)
df_num <- which(df<4,arr.ind = TRUE)
df_value
a b c d
1 2 1 3
2 3 2 4
3 4 3 5
df_num
row col
1 1
2 1
3 1
1 2
2 2
1 3
2 3
3 3
1 4
我想獲取col1
, col2
, col3
和col4
,
mean:
2
2.5
2
3
如果你必須使用df_num
於子集df_val
然后取mean
列的一種方法是split
子集df_value
根據"col"
的列df_num
並采取mean
每個列表中。
sapply(split(df_value[df_num], df_num[, "col"]), mean, na.rm = TRUE)
# 1 2 3 4
#2.0 2.5 2.0 3.0
如評論中所述,您可以直接過濾df_value
以取mean
sapply(df_value, function(x) mean(x[x<4], na.rm = TRUE))
# 1 2 3 4
#2.0 2.5 2.0 3.0
我們可以從base R
使用tapply
tapply(df_value[df_num], df_num[, 'col'], FUN = mean)
# 1 2 3 4
#2.0 2.5 2.0 3.0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.