我有以下数据框
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 values和R Apply function depending on element in a vector,我试图创建一个可以接受两个争论(包字段和类型字段)并使用switch语句进行更新的切换功能。不确定这是否正确。
答案 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