簡體   English   中英

如何在R的數據框中添加不同長度的列?

[英]How to add a column of different length to a data frame in R?

我有兩個 DF,如下所示:

df1


ID Borrower
 1   A 
 2   A 
 3   A

df2


ID Borrower Category
 1    A        X 
 1    A        X 
 1    A        X 
 2    A        X 
 2    A        X 
 2    A        X 
 3    A        X 
 3    A        X 
 3    A        X

我想獲取 df2 的第三列並將其添加到第一個 df 中。 我想要得到的最終結果如下:

ID Borrower Category 
1     A       X 
2     A       X 
3     A       X

我試過df3<-left_join(df1, df2, by="ID", all=FALSE)但沒有用。 這段代碼對我產生了類似df2的東西(所以 ID=1,1,1,2,2,2,3,3,3)。 如何添加“類別”列並獲得如上所示的所需結果? 謝謝:):)

這是因為您在df2中有重復的值。 你可以這樣做:

library(tidyverse)
df1 <- tibble::tribble(
         ~ID, ~Borrower,
              1 ,  "A",
              2 ,  "A",
              3 ,  "A"
         )

df2 <- tibble::tribble(
         ~ID, ~Borrower, ~Category,
          1L,       "A",       "X",
          1L,       "A",       "X",
          1L,       "A",       "X",
          2L,       "A",       "X",
          2L,       "A",       "X",
          2L,       "A",       "X",
          3L,       "A",       "X",
          3L,       "A",       "X",
          3L,       "A",       "X"
         )

df1 %>% 
  left_join(distinct(df2)) 

Joining, by = c("ID", "Borrower")
# A tibble: 3 x 3
     ID Borrower Category
  <dbl> <chr>    <chr>   
1     1 A        X       
2     2 A        X       
3     3 A        X 

暫無
暫無

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

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