簡體   English   中英

為過熱熱圖創建數據幀時,dplyr 左連接錯誤

[英]dplyr left join error when create dataframe for superheat heatmap

我正在嘗試使用 R 中的 superheat 包准備用於制作熱圖的數據。
我的目標是使用left_join()連接兩個數據left_join() ,一個包含豐度數據,另一個包含具有相應站點名稱的列。 過熱函數不接受我的帶有站點名稱的列作為一個因素。 我希望left_join()可以解決這個問題。 到目前為止,我的代碼 des 不起作用。 我將不勝感激您的幫助!

fishdiet <- read.csv("Capis_otu_superheat3_small.csv", header=TRUE, row.names = 1)
Sites <- read.csv("Sites.csv", header=TRUE)

# choose only columns with numeric values
mynumbers <- fishdiet[,c(2:15)]

# left join the 2 data frames 
joined.data <- left_join(data.frame(Sites = rownames(mynumbers)),
                           Sites,
                           by = "Site")
 # or try
joined.data <- left_join(Sites, mynumbers, by = "Site")

輸出:dput(head(fishdiet))

structure(list(Site = structure(c(3L, 6L, 5L, 3L, 4L, 7L), .Label = c("MLALR", 
"MLCCR", "MLPBL", "MLPPR", "MLPST", "MLRNW", "MLROL", "MLSCR", 
"MLSIS"), class = "factor"), A1 = c(0L, 0L, 0L, 0L, 0L, 0L), 
A2 = c(0L, 0L, 0L, 0L, 0L, 0L), A3 = c(0L, 0L, 2L, 0L, 0L, 
0L), A4 = c(3L, 0L, 5L, 0L, 52L, 9L), A5 = c(0L, 0L, 0L, 
0L, 0L, 0L), A6 = c(0L, 0L, 0L, 0L, 0L, 0L), A7 = c(0L, 0L, 
0L, 0L, 0L, 0L), A8 = c(0L, 0L, 0L, 0L, 0L, 0L), A9 = c(0L, 
0L, 0L, 0L, 0L, 0L), A10 = c(0L, 0L, 0L, 0L, 0L, 0L), A11 = c(0L, 
1757L, 0L, 0L, 0L, 716L), A12 = c(0L, 0L, 0L, 0L, 0L, 0L), 
A13 = c(24499L, 8785L, 7267L, 19885L, 69L, 12L), A14 = c(19L, 
0L, 0L, 0L, 0L, 0L)), row.names = c("BCS19-10-1_ML1926", 
"BCS19-10-2_ML1950", "BCS19-10-3_ML1974", "BCS19-10-4_ML1998", 
"BCS19-10-5_ML2022", "BCS19-10-6_ML2046"), class = "data.frame")

輸出:dput(head(Sites))

structure(list(Site = structure(c(3L, 6L, 5L, 3L, 4L, 7L), .Label = c("MLALR", 
"MLCCR", "MLPBL", "MLPPR", "MLPST", "MLRNW", "MLROL", "MLSCR", 
"MLSIS"), class = "factor")), row.names = c(NA, 6L), class = "data.frame")

有點不清楚你的目標是什么。 你的兩次嘗試

left_join(data.frame(Sites = rownames(mynumbers)), Sites, by = "Site")

left_join(Sites, mynumbers, by = "Site")

失敗,因為mynumbers不包含“站點”列(這是您要加入的列)。 如果你的目標是簡單地擺脫你可以做的因素

fishdiet <- fishdiet %>%
    rownames_to_column() %>%  # necessary only if you want to preserve rownames
    mutate(fishdiet, Site = as.character(Site))

然后嘗試在fishdiet上調用您的熱圖函數。 如果它不起作用,請隨時發布您的熱圖代碼和所需的輸出,這樣可以更輕松地為您提供幫助。

暫無
暫無

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

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