首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为数据帧的特定列创建一行SD值?

如何为数据帧的特定列创建一行SD值?
EN

Stack Overflow用户
提问于 2022-01-21 07:32:36
回答 1查看 55关注 0票数 1

我有一个160×25万的数据框架。我想找到所有列的SD,除了R中的第一个列(249,999列),是否可以这样做并添加SD值的一行?这是探针β- DNA甲基化的值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-21 07:36:53

使用mtcars

代码语言:javascript
复制
mt <- mtcars[1:5,]
rbind(mt, "Standard Deviation" = c(NA, sapply(mt[,-1], sd)))
#                    mpg cyl disp  hp drat   wt qsec   vs   am gear carb
# Mazda RX4           21 6.0  160 110 3.90 2.62 16.5 0.00 1.00 4.00  4.0
# Mazda RX4 Wag       21 6.0  160 110 3.90 2.88 17.0 0.00 1.00 4.00  4.0
# Datsun 710          23 4.0  108  93 3.85 2.32 18.6 1.00 1.00 4.00  1.0
# Hornet 4 Drive      21 6.0  258 110 3.08 3.21 19.4 1.00 0.00 3.00  1.0
# Hornet Sportabout   19 8.0  360 175 3.15 3.44 17.0 0.00 0.00 3.00  2.0
# Standard Deviation  NA 1.4  100  32 0.42 0.45  1.3 0.55 0.55 0.55  1.5

解释:

  • sapply(mt[,-1], sd)在除第一个mt[,-1]之外的每个列上执行sd函数。因为这是vector.
  • c(NA, ..),而且返回值都是相同的“形状”和类,所以返回一个sapply是因为我们没有第一列的标准-dev,但是由于我们是行绑定的,所以我们需要的长度与mt.
  • rbind(mt, ..)中的列数是行绑定,也就是行连接。因为在本例中,mtcars使用行名进行标识,所以我将stddev命名为"Standard Deviation"。对于您的数据来说,这可能不是必要的,也不是合适的。
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70797811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档