【发布时间】:2020-08-29 07:44:11
【问题描述】:
我有两个 data.frames,我想通过 row.names 将它们连接在一起。但是 row.names 不相等,我试过了,但它不起作用
df1 <- data.frame(row.names = c('S.5.0U0','S.6.0U1','S.7.0U2','S.8.0U3'),vara=c(-1.2,15,8.5,0),varb=c(-29,29,2.6,5))
df2 <- data.frame(row.names = c('5U','6U','7U'),var1=c(-0.5,1.5,58),var2=c(-2.09,-12,2.6))
df1
vara varb
S.5.0U0 -1.2 -29.0
S.6.0U1 15.0 29.0
S.7.0U2 8.5 2.6
S.8.0U3 0 5
df2
var1 var2
5.U0 -0.5 -2.09
6.U1 1.5 -12.00
7.U2 58.0 2.60
merge <- df1 %>% mutate(name = case_when(
name == 'S.5.U' ~ '5U',
name == 'S.6.U' ~ '6U',
name == 'S.7.U' ~ '7U',
T ~ name)) %>%
left_join(., df2, by = 'name')
Error:Problem with `mutate()` input `name`. x Objekt 'name' not found i Input `name` is `case_when(...)`.
为什么这不起作用?为什么我指定了name却找不到?
编辑: 输出应该是这样的
merge
vara varb var1 var2
S.5.0U0 5U -1.2 -29 -0.5 -2.09
S.6.0U1 6U 15 29 1.5 -12
S.7.0U2 7U 8.5 2.6 58 2.6
我编辑了我的示例数据,因为我意识到它不适合真实数据。
【问题讨论】:
-
你想用这条线做什么
T ~ name?没有要分配的name值。你能展示你的预期输出吗?