我有一个大型的data.frame字符数据,我想根据其他语言中通常称为字典的内容进行转换.
目前我正在这样做:
foo <- data.frame(snp1 = c("AA", "AG", "AA", "AA"), snp2 = c("AA", "AT", "AG", "AA"), snp3 = c(NA, "GG", "GG", "GC"), stringsAsFactors=FALSE)
foo <- replace(foo, foo == "AA", "0101")
foo <- replace(foo, foo == "AC", "0102")
foo <- replace(foo, foo == "AG", "0103")
Run Code Online (Sandbox Code Playgroud)
这样可以正常工作,但是replace每次我想要替换data.frame中的一个项目时,重复该语句显然不是很漂亮并且看起来很愚蠢.
有没有更好的方法来实现这一点,因为我有一个大约25个键/值对的字典?
我想在矩阵中做多次替换.例如,
x <-sample(1:20,50,rep=T)
replace(x, x == 4, 2)
Run Code Online (Sandbox Code Playgroud)
使用replace替换x中的4等于2的元素.但是,我怎么能代替 x == 4用2,x ==3用4而x == 5用6.
是否有任何内置功能(4,3,5)分别替换(2,4,6)?