我有两个数据框:
d1=read.table(text="X1 X2 X3 X4 X5
1212 1213 1214 1216 1215
1194 1195 1193 1212 1190
1555 1554 1553 1556 1557
1212 1213 1214 1216 1215
1194 1195 1193 1212 1190
1212 1213 1214 1216 1215
904 1321 1322 1323 1324
1212 1213 1214 1216 1215
1206 1207 1208 1209 1210
1206 1207 1208 1209 1210", header=T, stringsAsFactors=F)
d2=read.table(text="X1 X2 X3 X4 X5 LG
Chr11 Chr11 Chr11 Chr11 Chr11 Chr11
Chr11 Chr11 Chr11 Chr11 Chr11 Chr11
Chr14 Chr12 Chr15 Chr10 Chr15 Chr15
Chr11 Chr11 Chr11 Chr11 Chr11 Chr11
Chr11 Chr11 Chr11 Chr11 Chr11 Chr11
Chr11 Chr11 Chr11 Chr11 Chr11 Chr11
Chr08 Chr12 Chr12 Chr12 Chr12 Chr12
Chr11 Chr11 Chr11 Chr11 Chr11 Chr11
Chr11 Chr11 Chr11 Chr11 Chr11 Chr11
Chr11 Chr11 Chr11 Chr11 Chr11 Chr11", header=T, stringsAsFactors=F)
我想根据评估结果从d1中提取值:如果d2 $ LG等于X1到X5列中的值。提取d1中的值,其中d2中的对应位置是与d2 $ LG具有相同值的第一个位置。提取的值是“ PO”列。 预期结果如下:
X1 X2 X3 X4 X5 LG PO
Chr11 Chr11 Chr11 Chr11 Chr11 Chr11 1212
Chr11 Chr11 Chr11 Chr11 Chr11 Chr11 1194
Chr14 Chr12 Chr15 Chr10 Chr15 Chr15 1553
Chr11 Chr11 Chr11 Chr11 Chr11 Chr11 1212
Chr11 Chr11 Chr11 Chr11 Chr11 Chr11 1194
Chr11 Chr11 Chr11 Chr11 Chr11 Chr11 1212
Chr08 Chr12 Chr12 Chr12 Chr12 Chr12 1321
Chr11 Chr11 Chr11 Chr11 Chr11 Chr11 1212
Chr11 Chr11 Chr11 Chr11 Chr11 Chr11 1206
Chr11 Chr11 Chr11 Chr11 Chr11 Chr11 1206
谢谢您的帮助。
答案 0 :(得分:2)
我们可以为此使用row/column
索引。通过将前5列(“ X1”至“ X5”)与“ d2”的“ LG”列进行比较来创建列索引,并使用max.col
,{{1 }}与行索引(cbind
)并使用它来提取与'd1'对应的值(假设'd1'和'd2'都具有相同的尺寸)
seq_len(nrow(d2))