R 对几个数据帧应用循环
我有10个不同的数据帧,分别命名为df1,df2,df3,。。。df10。我想找出所有10个数据帧的所有列的平均值。我已经尝试过这段代码,但是出现了错误“df[j]中的error]:类型为“closure”的对象不可子集”。有更好的方法吗R 对几个数据帧应用循环,r,loops,R,Loops,我有10个不同的数据帧,分别命名为df1,df2,df3,。。。df10。我想找出所有10个数据帧的所有列的平均值。我已经尝试过这段代码,但是出现了错误“df[j]中的error]:类型为“closure”的对象不可子集”。有更好的方法吗 for (j in 1:10) { mean[j] <- apply(df[j][,2:57], 2 , mean , na.rm=TRUE) } for(1:10中的j){ mean[j]获取列表中的数据帧,并使用colMeans获取列的平均值 re
for (j in 1:10) {
mean[j] <- apply(df[j][,2:57], 2 , mean , na.rm=TRUE)
}
for(1:10中的j){
mean[j]获取列表中的数据帧,并使用colMeans
获取列的平均值
result <- lapply(mget(paste0('df', 1:10)), function(x) colMeans(x[, 2:57], na.rm = TRUE))
result获取列表中的数据帧,并使用colMeans
获取列的平均值
result <- lapply(mget(paste0('df', 1:10)), function(x) colMeans(x[, 2:57], na.rm = TRUE))
结果使用嵌套sapply:
df1 <- data.frame(c1 = 1:5, c2 = 4:8)
df2 <- data.frame(c1 = 6:10, c2 = 9:13)
df3 <- data.frame(c1 = 1:5, c2 = 8:12)
mylist <- list(df1,df2,df3)
mylist
[[1]]
c1 c2
1 1 4
2 2 5
3 3 6
4 4 7
5 5 8
[[2]]
c1 c2
1 6 9
2 7 10
3 8 11
4 9 12
5 10 13
[[3]]
c1 c2
1 1 8
2 2 9
3 3 10
4 4 11
5 5 12
sapply(mylist, function(x) sapply(x, mean))
[,1] [,2] [,3]
c1 3 8 3
c2 6 11 10
df1使用嵌套sapply:
df1 <- data.frame(c1 = 1:5, c2 = 4:8)
df2 <- data.frame(c1 = 6:10, c2 = 9:13)
df3 <- data.frame(c1 = 1:5, c2 = 8:12)
mylist <- list(df1,df2,df3)
mylist
[[1]]
c1 c2
1 1 4
2 2 5
3 3 6
4 4 7
5 5 8
[[2]]
c1 c2
1 6 9
2 7 10
3 8 11
4 9 12
5 10 13
[[3]]
c1 c2
1 1 8
2 2 9
3 3 10
4 4 11
5 5 12
sapply(mylist, function(x) sapply(x, mean))
[,1] [,2] [,3]
c1 3 8 3
c2 6 11 10
df1一个选项是purrr包:
library(purrr)
# some dummy df 1
df1 <- data.frame(col1 = c(1,2,3,4),
col2 = c(5,6,7,8))
# some dummy df 1
df2 <- data.frame(col1 = c(1,2,3,4),
col2 = c(5,6,7,8))
# bind it to a list
l <- list(df1, df2)
# map colmeans over the list object
purrr::map(l, function(x) colMeans(x))
[[1]]
col1 col2
2.5 6.5
[[2]]
col1 col2
2.5 6.5
库(purrr)
#一些伪DF1
df1一个选项是purrr包:
library(purrr)
# some dummy df 1
df1 <- data.frame(col1 = c(1,2,3,4),
col2 = c(5,6,7,8))
# some dummy df 1
df2 <- data.frame(col1 = c(1,2,3,4),
col2 = c(5,6,7,8))
# bind it to a list
l <- list(df1, df2)
# map colmeans over the list object
purrr::map(l, function(x) colMeans(x))
[[1]]
col1 col2
2.5 6.5
[[2]]
col1 col2
2.5 6.5
库(purrr)
#一些伪DF1
df1