簡體   English   中英

使用lapply()函數查找R中數據幀中每一行的均值

[英]Using lapply()-function to find the mean of every row in data frame in R

我有一個包含7個變量的36個觀察值的數據框(技術,行業,2010、2011、2012、2013、2014)。 變量1和2是“因子”類型,變量3、4、5、6和7是帶有某些NA的數字。

我想使用lapply()函數查找每行的平均值(每行變量3、4、5、6和7的平均值),然后使用這些平均值創建新列(cbind)。

可以這樣做嗎,例如使用矩陣和apply()函數,您可以在其中指定行vs列-選擇:

apply(matrix, 1, mean) #will go through all the rows and calculate the mean for each one.

由於OP提到使用lapply/apply/sapply or tapply ,因此使用apply的解決方案可以是:

df$meanVal <- apply(df[3:7], 1, mean, na.rm = TRUE)

新列meanVal將包含列3:7 mean

函數rowMeans將更加高效:

df$meanVal <- rowMeans(df[3:7], na.rm = TRUE)

通常不需要lapply上使用lapply ,因為apply(dafa,1,fun)通常可以正常工作。 但是在某些情況下,您可能需要:

lapply(split(data,seq(nrow(data))),fun)

要么 :

by(data,seq(nrow(data)),fun)

暫無
暫無

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

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