我想找到一個值的哪一行與另一個值具有相同的值?這是代碼:
> a
[1] 3 5 6
> num
x y z
1 112 55 0
2 23 21 1
3 121 56 2
4 132 15 3
5 123 15 4
6 132 45 5
7 132 41 6
8 179 45 7
要找出哪一行num具有相同的值a,是否有我可以使用的match函式?我試過這個代碼(它不起作用):
for(i in 1:length(num)){
for (j in 1: length(a)){
if (num$z[i]==a[j]){
return(row(num[i]))
}
}
}
輸出是警告。
uj5u.com熱心網友回復:
請參閱下面的代碼。lapply回傳一個串列,串列 which_rows 包含a在每列中出現值的行。
which_rows <- lapply(df1, function(x) which(x %in% a))
which_rows
$x
integer(0)
$y
integer(0)
$z
[1] 4 6 7
uj5u.com熱心網友回復:
您幾乎可以使用以下match功能:
match(a, num$z)
# [1] 4 6 7
要獲得num滿足的完整行z==a:
num[match(a,num$z),]
# x y z
# 132 15 3
# 132 45 5
# 132 41 6
或者
num %>% filter(z %in% a)
# x y z
# 132 15 3
# 132 45 5
# 132 41 6
只獲得y:
num$y[match(a,num$z)]
# [1] 15 45 41
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/369320.html
上一篇:將圖例分成兩列ggplot2
