繁体   English   中英

根据r中函数的输出值创建新矩阵?

[英]Creating new matrix from output values of a function in r?

嗨,我做了一个函数Ge​​t,可以从一个数据集计算出平均值和SD。我有七个格式相同的数据集,并希望将将Get函数应用于这些数据集的输出放在一个矩阵中进行比较。 我知道我的功能需要再迈出一步,但无法弄清楚吗? 如果名称为CA1,CA2,...,还可以在那里ID来自动遍历每个数据集。 我是R新手

这是功能

 Get <- function (x) {
  x <- as.matrix(x)
  m <- mean(x[,3:4])
  SD <- sd(x[,3:4])
  return(list(mean=m, SD=SD))
}

尝试:

 set.seed(42) #creating some datasets
 CA1 <- as.data.frame(matrix(sample(1:20, 5*20, replace=TRUE), ncol=5))
 CA2 <- as.data.frame(matrix(sample(1:20, 5*20, replace=TRUE), ncol=5))
 CA3 <- as.data.frame(matrix(sample(1:20, 5*20, replace=TRUE), ncol=5))

 nm1 <- ls(pattern="^CA\\d")
 res <- sapply(mget(nm1), Get)
 res #here you get a list of `6`
 #     CA1      CA2      CA3     
 #mean 10.1     9.9      9.275   
 #SD   6.058687 5.490318 5.579208

转换为matrix

 m1 <- matrix(unlist(res), ncol=3, dimnames=dimnames(res))
 m1
 #         CA1      CA2      CA3
 #mean 10.100000 9.900000 9.275000
 #SD    6.058687 5.490318 5.579208

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM