>

3 개의 데이터 프레임이 있고 데이터 프레임에서 각 요소의 표준 편차를 찾고 싶습니다

df1 <- data.frame(a=1:3,b=2:4,c=3:5)
df1
df2 <- data.frame(a=4:6,b=5:7,c=6:8)
df2
df3 <- data.frame(a=7:9,b=8:10,c=9:11)
df3

내가 시도했다 :

sd(c(df1,df2,df3))

하지만 오류가 발생했습니다. 도와 주셔서 감사합니다.


  • 답변 # 1

    a, b 및 c에 대해 표준 편차를 한 번 계산하려면 (세 개의 데이터 프레임을 결합) @ d.b의 주석을 따를 수 있습니다.

    sapply(rbind(df1, df2, df3), sd)
    
    

    먼저 세 개를 하나의 데이터 프레임으로 결합하고 sapply를 통해 표준 편차를 계산합니다.

    각 데이터 프레임마다 개별적으로 세 번 수행하려면 다음을 수행하십시오.

    listofdfs <- list(df1,df2,df3)
    for(i in listofdfs){
    print(sapply(i, sd))}
    
    

    또는 @ d.b가 제안 함

    sapply(mget(paste0("df", 1:3)), function(x) sapply(x, sd))
    
    

  • 답변 # 2

    쉬운 방법은 array 를 만드는 것입니다   unlist 후 데이터 세트를 작성하려면 MARGIN 를 지정하십시오.  그리고 sd 를 적용  요소 별 sd

    apply(array(unlist(mget(paste0('df', 1:3))), c(3, 3, 3)), 1:2, sd)
    
    
    <시간>

    또는 rowSds 와 함께   MARGIN 와 함께  1로

    library(matrixStats)
    apply(array(unlist(mget(paste0('df', 1:3))), c(3, 3, 3)), 1, rowSds)
    
    
    <시간> 또는 다른 옵션은 단일 데이터 세트를 만든 다음 행 번호로 그룹화하여 sd 를 얻는 것입니다.  각 열의

    library(purrr)
    library(dplyr)
    mget(paste0("df", 1:3)) %>%
        map_dfr(~ .x %>%
                      mutate(rn = row_number())) %>%
          group_by(rn) %>% 
          summarise_all(sd)
    
    

  • 이전 .net - SQL 데이터베이스에서 데이터를 읽고 텍스트 상자에 표시하려고합니다Visual C # (구문 오류)
  • 다음 python - 다음 열에서 팬더 값을 선택하는 방법