从子集列中选择行

时间:2017-03-27 16:27:36

标签: r

我有两个数据集,我需要找到2列的匹配名称(名称,发布商名称)。

我做的第一件事是通过插入"和#34;将包含名称和发布者名称的两列合并为1列。在发布者的名字之前。然后我使用intersect函数来查找两个数据集之间的匹配。然后,我将相交的数据帧拆分为2列。

GooglePlay <- read.csv("...\\GooglePlay.csv", header = TRUE)
iTunes <- read.csv("...\\iTunes.csv", header = TRUE)

GooglePlay$gp_publisher_name1 <- sub("^", "and ", GooglePlay$gp_publisher_name)
iTunes$ios_publisher_name1 <- sub("^", "and ", iTunes$ios_publisher_name)
GoogleMerge <- paste(GooglePlay$gp_name, GooglePlay$gp_publisher_name1)
iTunesMerge <- paste(iTunes$ios_name, iTunes$ios_publisher_name1)
data.intersect <- intersect(GoogleMerge, iTunesMerge)
Matched.Cols <- str_split_fixed(data.intersect, "and", 2)

Matched.Cols数据集是GooglePlay和iTunes数据集的子集,因为它包含应用和发布者的通用名称。现在,我想将GooglePlay和iTunes数据集的子集包含在所有包含我创建的子集中的所有行。我通过使用subset函数和索引尝试了这一点,但我一直得到错误或数据帧充满了NAS。通过逐个选择行来对数据集进行子集化将是非常耗时的。

dim(Matched.Cols)
[1] 12622     2

子集应包含12622行,其中包含所有原始变量,但使用匹配的应用和发布者名称。

0 个答案:

没有答案