我有一个数据行,其中包含行ID和索引值,例如:
>DF
ID asn bln gerp grn hgv hrn lwd mpl zwl
1 10 5 6 3 2 NA 4 NA NA NA
2 11 NA 3 NA NA 4 NA NA 5 6
3 12 NA NA NA NA NA NA 4 3 2
4 13 3 2 5 6 NA 4 NA NA NA
5 14 NA NA NA NA NA NA 2 3 4
还有一个时间戳:
>timetbl
ID X1 X2 X3 X4 X5
1 10 900 910 920 930 1000
2 11 915 930 1000 1010 1020
3 12 1200 1230 1255 NA NA
4 13 1640 1700 1710 1750 1800
5 14 2000 2100 2200 NA NA
我需要一个函数来创建一个新的数据框,其索引号由timetbl DF中的时间替换,方法是使用:
ID
用于找到正确的行index
的单元格值来查找新值结果将是:
ID asn bln gerp grn hgv hrn lwd mpl zwl
1 10 930 1000 910 900 NA 920 NA NA NA
2 11 915 930 NA NA 1000 NA NA 1010 1020
3 12 NA NA NA NA NA NA 1255 1230 1200
4 13 1640 1700 1750 1800 NA 1710 NA NA NA
5 14 NA NA NA NA NA NA 2000 2100 2200
我试图通过使用apply()
,paste()
或%>%
来获得结果,但是都没有解决。
有没有建议?
尝试一些数据:
DF:
> dput(DF)
structure(list(ID = c(10, 11, 12, 13, 14), asn = c(5L, NA, NA,
3L, NA), bln = c(6L, 3L, NA, 2L, NA), gerp = c(3L, NA, NA, 5L,
NA), grn = c(2L, NA, NA, 6L, NA), hgv = c(NA, 4L, NA, NA, NA),
hrn = c(4L, NA, NA, 4L, NA), lwd = c(NA, NA, 4L, NA, 2L),
mpl = c(NA, 5L, 3L, NA, 3L), zwl = c(NA, 6L, 2L, NA, 4L)), row.names = c(NA,
-5L), class = "data.frame")
timetbl:
> dput(timetbl)
structure(list(ID = c(10, 11, 12, 13, 14), X1 = c(900L, 915L,
1200L, 1640L, 2000L), X2 = c(910L, 930L, 1230L, 1700L, 2100L),
X3 = c(920L, 1000L, 1255L, 1710L, 2200L), X4 = c(930L, 1010L,
NA, 1750L, NA), X5 = c(1000L, 1020L, NA, 1800L, NA)), row.names = c(NA,
-5L), class = "data.frame")
谢谢!
答案 0 :(得分:2)
这与您提供的输出不完全匹配,但似乎与您的描述匹配
CCR