使用R的新手,並想知道如何根據來自另一個數據幀的數據在數據框中創建新列。假設我有2個數據幀,由字母「a」相連,在df1
col2
「B」和「C」和df2
col1
如下:r語言:如何基於另一個數據框在數據框中創建新列?
> col1<-c(1, 2, 3, 4)
> col2<-c("a","b","c","c")
> df1<-data.frame(col1, col2)
> df1
col1 col2
1 1 a
2 2 b
3 3 c
4 4 c
> c1<-c("a","b","c")
> c2<-c("Jim","Sue","Bob")
> c3<-c("abc","def","ghi")
> df2<-data.frame(c1,c2,c3)
> df2
c1 c2 c3
1 a Jim abc
2 b Sue def
3 c Bob ghi
我想一個欄3添加到df1
添加用戶名基於df1
中的「a」,「b」或「c」的值。也就是說,我如何使用R獲得以下內容?
> df1
col1 col2 col3
1 1 a Jim
2 2 b Sue
3 3 c Bob
4 4 c Bob
我試過df1["col3"]<-df2[df1$col2==df2$c1]$c2
但它不工作。
注意:我只想添加一列從df2
到df
,如上所示(例如,不是所有的列在df2
)。
看看合併或匹配。我喜歡'dplyr'中的'left_join'。爲了完整性,它只是'合併(df1,df2,by.x =「col2」,by.y =「c1」)' – jenesaisquoi