相关疑难解决方法(0)

在dplyr中加入时,如何为x和y指定列的名称?

我有两个数据帧,我想使用dplyr加入.一个是包含名字的数据框.

test_data <- data.frame(first_name = c("john", "bill", "madison", "abby", "zzz"),
                        stringsAsFactors = FALSE)
Run Code Online (Sandbox Code Playgroud)

另一个数据框包含Kantrowitz名称语料库的清理版本,用于识别性别.这是一个最小的例子:

kantrowitz <- structure(list(name = c("john", "bill", "madison", "abby", "thomas"), gender = c("M", "either", "M", "either", "M")), .Names = c("name", "gender"), row.names = c(NA, 5L), class = c("tbl_df", "tbl", "data.frame"))
Run Code Online (Sandbox Code Playgroud)

我基本上想要test_data使用kantrowitz表格从表中查找名称的性别.因为我要将它抽象为一个函数encode_gender,所以我不知道将要使用的数据集中列的名称,因此我不能保证它将会被name用作,例如kantrowitz$name.

在基础RI中将以这种方式执行合并:

merge(test_data, kantrowitz, by.x = "first_names", by.y = "name", all.x = TRUE)
Run Code Online (Sandbox Code Playgroud)

返回正确的输出:

  first_name gender
1       abby either
2       bill either
3       john      M
4    madison …
Run Code Online (Sandbox Code Playgroud)

join r left-join dplyr

74
推荐指数
2
解决办法
9万
查看次数

标签 统计

dplyr ×1

join ×1

left-join ×1

r ×1