Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何从apply()函数输出中获取行名称?_R_Apply_Tibble_Rowname - Fatal编程技术网

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

R 如何从apply()函数输出中获取行名称?,r,apply,tibble,rowname,R,Apply,Tibble,Rowname,我正在学习R,并与世界银行的一些数据进行了比较。我在一个列切片中使用了apply函数,并对值应用了标准偏差,这样:result这里,sd返回一个值,当apply是MARGIN=2i,e时,我们得到一个命名向量。因此,namesout将获得名称,而不是row.names。使用内置数据集iris的可复制示例 如果我们需要一个data.frame作为输出,这可以直接通过data.frame调用创建 此外,这可以在tidyverse中完成 或者转换为列表和框架 我们可以使用堆栈将向量输出转换为数据帧 t

我正在学习R,并与世界银行的一些数据进行了比较。我在一个列切片中使用了apply函数,并对值应用了标准偏差,这样:result这里,sd返回一个值,当apply是MARGIN=2i,e时,我们得到一个命名向量。因此,namesout将获得名称,而不是row.names。使用内置数据集iris的可复制示例

如果我们需要一个data.frame作为输出,这可以直接通过data.frame调用创建

此外,这可以在tidyverse中完成

或者转换为列表和框架

我们可以使用堆栈将向量输出转换为数据帧

temp <- stack(apply(df[6:46],2,sd,na.rm=TRUE))
我们也可以将其用于sapply和lapply


谢谢你的帮助Ronak Shah你的解释让我头脑清醒。
out1 <- data.frame(val = out)
row.names(out1)
#[1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width" 
data.frame(names = names(out), values = out)
library(dplyr)
library(tidyr)
iris %>%
     summarise_if(is.numeric, sd, na.rm = TRUE) %>%
     gather
#     key     value
#1 Sepal.Length 0.8280661
#2  Sepal.Width 0.4358663
#3 Petal.Length 1.7652982
#4  Petal.Width 0.7622377
library(tibble)
iris %>%
    summarise_if(is.numeric, sd, na.rm = TRUE) %>%
    as.list %>% 
    enframe
temp <- stack(apply(df[6:46],2,sd,na.rm=TRUE))
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
stack(sapply(mtcars,sd, na.rm = TRUE))
#and
stack(lapply(mtcars,sd, na.rm = TRUE))