簡體   English   中英

如何在R中的列名相同的數據幀中創建rowMeans

[英]How to make rowMeans of data frame where column name is same in r

我有下表

x | y | z | x | y | z
0 | 1 | 1 | 1 | 0 | 0
1 | 1 | 1 | 1 | 1 | 1
0 | 0 | 0 | 0 | 0 | 0

我只想對具有相同名稱的列進行rowMeans。 由於我有三個不同的列名,因此我希望生成具有三個列的數據框,每個列代表具有相同名稱的該列的rowMeans

所以基本上,我想跟隨輸出

x   | y   | z   |
0.5 | 0.5 | 0.5 |
1   | 1   | 1   |
0   | 0   | 0   |

我們可以做split

sapply(split.default(df1, names(df1)), rowMeans)
#      x   y   z
#[1,] 0.5 0.5 0.5
#[2,] 1.0 1.0 1.0
#[3,] 0.0 0.0 0.0

數據

df1 <- structure(list(x = c(0L, 1L, 0L), y = c(1L, 1L, 0L), z = c(1L, 
 1L, 0L), x = c(1L, 1L, 0L), y = c(0L, 1L, 0L), z = c(0L, 1L, 
 0L)), .Names = c("x", "y", "z", "x", "y", "z"), class = "data.frame",
 row.names = c(NA, -3L))
sapply(unique(names(df)), function(a) rowMeans(df[which(names(df) == a)]))
#       x   y   z
#[1,] 0.5 0.5 0.5
#[2,] 1.0 1.0 1.0
#[3,] 0.0 0.0 0.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM