gpt4 book ai didi

r - 如何从 apply() 函数输出中获取行名?

转载 作者:行者123 更新时间:2023-12-05 02:10:53 25 4
gpt4 key购买 nike

我正在学习 R 并对世界银行的一些数据有所了解。我在列的一部分中使用了 apply() 函数,并以这种方式对值应用了标准差:result <- apply(df[6:46],2,sd,na.rm=TRUE) .

结果是一个有两列没有标题的对象,一列是所有被选中的 tibble 列的名称,另一列是每列的标准差。当我在输出中使用 typeof() 命令时,结果是 'double' . R 文档说 apply() 的输出是向量、数组或列表。

我需要知道这一点,因为我想提取所有行名并使用命令 rownames(result)抛出输出 NULL .我该怎么做才能提取此对象的行名称?请帮忙。

enter image description here

已尝试 rownames(result)row.names(result但都没有用。

最佳答案

我们可以使用stack将矢量输出转换成dataframe。

temp <- stack(apply(df[6:46],2,sd,na.rm=TRUE))

现在,我们可以在 temp$values 中使用 temp$indsd 的值访问所有列名。

mtcars为例,

temp <- stack(apply(mtcars, 2, sd, na.rm = TRUE))
temp

# values ind
#1 6.02695 mpg
#2 1.78592 cyl
#3 123.93869 disp
#4 68.56287 hp
#5 0.53468 drat
#6 0.97846 wt
#7 1.78694 qsec
#8 0.50402 vs
#9 0.49899 am
#10 0.73780 gear
#11 1.61520 carb

我们还可以将其与 sapplylapply 一起使用

stack(sapply(mtcars,sd, na.rm = TRUE))
#and
stack(lapply(mtcars,sd, na.rm = TRUE))

关于r - 如何从 apply() 函数输出中获取行名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58036316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com