根据R

时间:2017-08-22 21:17:47

标签: r

我有以下数据框

df

ID Timestamp Package  Genre Name
1  01        com.abc  NA    NA
1  02        com.xyz  NA    NA
2  04        com.abc  NA    NA

现在,Package列有大约1000个唯一的包,我需要更新Genre和Name列。

我知道如何使用矢量化方法或使用内部更新这些方法,但这意味着我必须手动迭代所有独特的包名称,我希望找到一个更时尚的解决方案。

查看switch function for column valuesR Apply function depending on element in a vector,我试图创建一个可以接受两个争论(包字段和类型字段)并使用switch语句进行更新的切换功能。不确定这是否正确。

1 个答案:

答案 0 :(得分:0)

创建一个包含包信息的data.frame,并将它们合并到包中。首先删除类型和名称列,因为它们将填充merge

df[, c("Genre", "Name")] <- NULL

df2 <- data.frame(Package = c("com.abc", "com.xyz"),
                  Genre = c("g1", "g2"),
                  Name = c("n1", "n2"))

merge(df, df2, by = "Package")

  Package ID Timestamp Genre Name
1 com.abc  1         1    g1   n1
2 com.abc  2         4    g1   n1
3 com.xyz  1         2    g2   n2