我有以下两个 Dataframe 。我尝试使用left_join x x Key合并这两个 Dataframe ,但是出现错误第一个这个问题有什么解决办法吗?
left_join
Key
ryevplcw1#
使用基数merge。因为df和df2共享Key,所以不需要指定它。all=TRUE意味着,我们需要df的所有行和df2的所有行。
merge
df
df2
all=TRUE
res <- merge(df, df2, all=TRUE) head(res) # Key Quartile min max # 1 GC23 1 0.8 70.1 # 2 GC23 2 70.2 102.8 # 3 GC23 3 102.9 124.3 # 4 GC23 4 124.4 342.6 # 5 GC23 Today 131.8 131.8 # 6 GC24 1 -108.1 -0.2
tkqqtvp12#
它应该用引号括起来,例如a charactervector
character
vector
library(dplyr) left_join(df,df2, by = "Key")
# A tibble: 44 × 7 Key Quartile.x min.x max.x Quartile.y min.y max.y <fct> <fct> <dbl> <dbl> <fct> <dbl> <dbl> 1 GC23 1 0.800 70.1 Today 132. 132. 2 GC23 2 70.2 103. Today 132. 132. 3 GC23 3 103. 124. Today 132. 132. 4 GC23 4 124. 343. Today 132. 132. 5 GC24 1 -108. -0.200 Today -47.2 -47.2 6 GC24 2 -0.200 63.1 Today -47.2 -47.2 7 GC24 3 63.2 124. Today -47.2 -47.2 8 GC24 4 124. 190. Today -47.2 -47.2 9 GC25 1 -71.0 4.80 Today -12.2 -12.2 10 GC25 2 5.30 67.1 Today -12.2 -12.2 # … with 34 more rows
如果要添加新行,请使用bind_rows
bind_rows
> bind_rows(df, df2) # A tibble: 55 × 4 Key Quartile min max <fct> <fct> <dbl> <dbl> 1 GC23 1 0.800 70.1 2 GC23 2 70.2 103. 3 GC23 3 103. 124. 4 GC23 4 124. 343. 5 GC24 1 -108. -0.200 6 GC24 2 -0.200 63.1 7 GC24 3 63.2 124. 8 GC24 4 124. 190. 9 GC25 1 -71.0 4.80 10 GC25 2 5.30 67.1 # … with 45 more rows
根据?left_joinby -要作为连接依据的变量的字符向量或使用创建的连接规范如果我们需要根据新数据集更新min/max
?left_join
min/max
rows_update(df, df2[-2], by = "Key") # A tibble: 44 × 4 Key Quartile min max <fct> <fct> <dbl> <dbl> 1 GC23 1 132. 132. 2 GC23 2 132. 132. 3 GC23 3 132. 132. 4 GC23 4 132. 132. 5 GC24 1 -47.2 -47.2 6 GC24 2 -47.2 -47.2 7 GC24 3 -47.2 -47.2 8 GC24 4 -47.2 -47.2 9 GC25 1 -12.2 -12.2 10 GC25 2 -12.2 -12.2 # … with 34 more rows
2条答案
按热度按时间ryevplcw1#
使用基数
merge
。因为df
和df2
共享Key
,所以不需要指定它。all=TRUE
意味着,我们需要df
的所有行和df2
的所有行。tkqqtvp12#
它应该用引号括起来,例如a
character
vector
更新
如果要添加新行,请使用
bind_rows
根据
?left_join
by -要作为连接依据的变量的字符向量或使用创建的连接规范
如果我们需要根据新数据集更新
min/max