簡體   English   中英

R在不同數據幀中的相同過程

[英]Same process in different data frames with R

我想知道是否可以在 R 中的不同數據幀中執行相同的過程,例如:我有 5 個不同的數據幀,我想在每個數據幀中執行下一個過程:

  1. 將列轉換為行名稱

行名(x1) <- x1$Var1

  1. 轉置數據幀

x1.t <- as.data.frame(t(as.matrix(x1)))

  1. 計算相關性:

x1.corr <- cor(x1.t, method = "spearman")

我不想有很多代碼,我認為可以用函數和循環來完成,但我不確定具體如何。

非常感謝,任何建議或材料將不勝感激。

要調用該函數,您可以使用result <- myfun(my_data_frame) 結果將在一個列表中,您可以使用result[[1]]result[[2]]從中選擇元素。

myfun <- function(x1) {
    result.list <- list()
    rownames(x1) <- x1$Var1
    result.list[[1]] <- as.data.frame(t(as.matrix(x1)))
    names(result.list)[1] <- "x1.t"
    result.list[[2]] <- cor(x1.t, method = "spearman")
    names(result.list)[2] <- "x1.corr"
    result.list
}

您必須使用lapply功能。 假設您有 5 個數據幀df1df2df3df4df5 ,試試這個:

# Create a list of df's
df_list <- list(df1,df2,df3,df4,df5)

# Create a fuction with the process you want
process <- function(x1){
      rownames(x1) <- x1$Var1
      x1.t <- as.data.frame(t(as.matrix(x1)))
      x1.corr <- cor(x1.t, method = "spearman")
      return(x1.corr)
}

# Apply lapply function
lapply(df_list,process)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM