找回密码
 立即注册
查看: 5182|回复: 4

求一个矩阵每一列的标准差,为什么不能用for语句将每一个标准差循环4941次呢?

[复制链接]
发表于 2017-9-27 11:19:18 | 显示全部楼层 |阅读模式
求一个矩阵每一列的标准差,为什么不能用for语句将每一个标准差循环4941次呢?
sd(x[,1])
for(i in 1:13514) sn = function(i){
  sn = sd(x[,i])
  return(sn)
}

sf <- rep(sn(1:13514),each = 4941)
一直出现这样的提醒
Error in is.data.frame(x) :
  (list) object cannot be coerced to type 'double'
Called from: is.data.frame(x)
Browse[1]>

这是为什么呢?弄了一天了,就是无法循环标准差,
求助求助,谢谢各位了

回复

使用道具 举报

发表于 2017-9-28 08:43:02 | 显示全部楼层
apply(x,2,sd)
执行上述语句就可以搞定了,不需要使用FOR循环。
回复

使用道具 举报

 楼主| 发表于 2017-9-28 20:46:23 | 显示全部楼层
可以可以,谢谢啦
回复

使用道具 举报

 楼主| 发表于 2017-9-28 20:47:19 | 显示全部楼层
可以,非常感谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|R语言中文网

GMT+8, 2024-11-22 14:48 , Processed in 0.023162 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表