[英]Adding row of one data frame at a specific spot in another dataframe in R
[英]Adding a one dataframe to the end of another data.frame in R
我很難將一個添加到另一個數據框的底部。
我有一個數據框(我們稱之為 DF1),它有 1 行和 5 列。 我有另一個數據框(我們稱之為 DF2),它有 50 行和 5 列。 我將它設置為兩個數據幀之間的列匹配 - 它們具有相同的列。 實際上,DF1是基於DF2的計算。
這是 DF1 的樣子:
row.names pt1 pt2 pt3 pt4
calc 0.93 0.45 0.28 0.54
這是 DF2 的樣子:
row.names pt1 pt2 pt3 pt4
SNP1 AA AG AG AA
SNP2 CT CT TC CC
SNP3 GG CG CG <NA>
SNP4 AA GG AG AA
SNP5 <NA> <NA> <NA> <NA>
DF1 應該是實際數據點的數量(不丟失的值的數量)除以可能值的總數。
所以..我想將 DF1 添加到 DF2 的底部,如下所示:
row.names pt1 pt2 pt3 pt4
SNP1 AA AG AG AA
SNP2 CT CT TC CC
SNP3 GG CG CG <NA>
SNP4 AA GG AG AA
SNP5 <NA> <NA> <NA> <NA>
calc 0.93 0.45 0.28 0.54
當我嘗試使用
both.dfs <- rbind(DF1, DF2) # DF1 is first here
DF1 是 DF2 中的第一行。 我需要它是最后一行。
當我嘗試使用
both.dfs <- rbind(DF2, DF1) # DF2 is first here
我收到一個錯誤:
Warning messages:
1: In `[<-.factor`(`*tmp*`, iseq, value = 0.84) :
invalid factor level, NAs generated
2: In `[<-.factor`(`*tmp*`, iseq, value = 0.84) :
invalid factor level, NAs generated
3: In `[<-.factor`(`*tmp*`, iseq, value = 0.84) :
invalid factor level, NAs generated
4: In `[<-.factor`(`*tmp*`, iseq, value = 0.74) :
invalid factor level, NAs generated
我試過合並,我試過在 DF2 中添加一個新行,然后在 DF2 的值中添加 .. 似乎沒有任何效果! 我迫切需要一些幫助! 任何人?
這是你應該做的:
DFtranspose <- cbind(t(DF1[2, ]), t(DF2))
rownames(DFtranspose) <- DF1[1, ]
只要您正在處理數據幀,就可以使用 rbind():
bothdfs <- rbind(df1, df2)
列名將自動保留。
我同意這些評論,這可能是一個壞主意,但您可以這樣做。
首先,與基於列表的 data.frame 不會以這種方式結合得很好。 如果您想綁定數據,最好將它們轉換為矩陣。 請注意,您將不得不為數據框的每一行選擇一種類型,因此如果您的數字與字符綁定,則無法將其保留為數字。 如果您願意將所有東西都視為角色,請試一試:
> df1 <- data.frame(pt1="a", pt2="b", row.names=1)
> rownames(df1) <- "e"
> df2 <- data.frame(letters[1:4], pt1=1:4, pt2=2:5, row.names=1)
> rbind(as.matrix(df2), as.matrix(df1))
pt1 pt2
a "1" "2"
b "2" "3"
c "3" "4"
d "4" "5"
e "a" "b"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.