我有一个带有两个字符串变量的数据框,并希望使用一个单独的“键”数据框将它们转换为数值。下面的示例已简化,但我需要能够将其应用于基于将始终不为a = 1,b = 2等的任意键来替换V1和V2变量的内容。
示例:
set.seed(1) x <- data.frame( V1 = sample((letters), 10, replace=TRUE), V2 = sample((letters), 10, replace=TRUE) ) key <- data.frame(letters, 1:26)
我需要对照键引用V1的第一个元素,用相应的值替换(例如a = 1,b = 2,等等),对第二个元素执行相同的操作,然后在完成V1时继续并对V2执行相同的操作
我一直在努力使用lapply()和sub()制定一个解决方案,但一直陷于困境,因为我看不到传递sub()函数的方法超过了1:1的比较。我应该使用其他功能吗?
原谅我-我确定解决方案一定很简单,但我对R还是很陌生。
我有一个带有两个字符串变量的数据框,并希望使用一个单独的“键”数据框将它们转换为数值。下面的示例已简化,但我需要能够将其应用于...
您可以使用data.table
创建查找表,然后使用apply
沿数据框的列应用映射:
您可以在基数R中使用unlist
和match
您可以将apply
与行和列的边距一起使用,例如as.data.frame(apply(x, c(1,2), function(l) key[key$letters == l,c(2)]))
。
base R
有两种制作方法: