作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用以下两个数据框
> d1
keystr keynum
1 abc 5
2 def 2
3 def 7
4 abc 3
> d2
HD 2 3 5 7
1 abc H I J K
2 def L M N P
keystr
中的字符串和
keynum
中的数字作为
d2
中的索引数据框。结果应该是:
> d1
keystr keynum val
1 abc 5 J
2 def 2 L
3 def 7 P
4 abc 3 I
d1 <- data.frame("keystr"=c("abc","def","def","abc"), "keynum"=c(5,2,7,3))
d2 <- data.frame("HD"=c("abc","def"),
"2"=c("H","L"), "3"=c("I","M"),
"5"=c("J","N"), "7"=c("K","P"))
d1$val <- mapply(function(kstr,knum) d2[kstr,knum],
d1$keystr, d1$keynum )
最佳答案
我们可以对数据框进行变换,然后通过tidyr进行合并。和 dplyr .
library(dplyr)
library(tidyr)
d3 <- d2 %>%
gather(keynum, letter, -HD) %>%
mutate(keynum = as.numeric(sub("X", "", keynum)))
d4 <- d1 %>%
left_join(d3, by = c("keystr" = "HD", "keynum"))
d4
# keystr keynum letter
# 1 abc 5 J
# 2 def 2 L
# 3 def 7 P
# 4 abc 3 I
stringsAsFactors = FALSE
创建数据框时。
d1 <- data.frame("keystr"=c("abc","def","def","abc"), "keynum"=c(5,2,7,3),
stringsAsFactors = FALSE)
d2 <- data.frame("HD"=c("abc","def"),
"2"=c("H","L"), "3"=c("I","M"),
"5"=c("J","N"), "7"=c("K","P"),
stringsAsFactors = FALSE)
关于r - 使用 mapply 在数据帧中进行间接寻址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49681270/
我是一名优秀的程序员,十分优秀!