这开始是一个审美问题,但后来变成了一个功能性问题,特别是关于 magrittr。
我想添加一个手动输入到已经存在的data_frame :
cars_0 <- mtcars %>%
mutate(brand = row.names(.)) %>%
select(brand, mpg, cyl)
new_cars <- matrix(ncol = 3, byrow = T, c(
"VW Beetle", 25, 4,
"Peugeot 406", 42, 6)) # Coercing types is not an issue here.
cars_1 <- rbind(cars_0,
set_colnames(new_cars, names(cars_0)))
我在矩阵中编写新车以“提高易读性”,因此需要设置列名以将其绑定到cars_0
.
如果有人像我一样喜欢 magrittr,他们可能想先展示new_cars
并通过管道发送给set_colnames
cars_1 <- rbind(cars_0, new_cars %>%
set_colnames(names(cars_0)))
或者为了避免重复,他们会想指出cars_0
并将其传递给rbind
cars_1 <- cars_0 %>%
rbind(., set_colnames(new_cars, names(.)))
然而,一个人不能同时做这两个,因为对于谁在被管道传输存在混淆
cars_1 <- cars_0 %>%
rbind(., new_cars %>% set_colnames(names(.)))
## Error in match.names(clabs, names(xi)) :
## names do not match previous names
我的问题:有没有办法区分通过管道传输的两个参数?