R匹配列中最接近的数字

时间:2017-11-27 21:18:34

标签: r matching closest

我有一份对调查中7个问题的回复列表,每个问题都有自己的专栏,并且我试图找到最接近(数字)到第7个的前6个回答。有些人不会完全相同,所以我想创建一个新变量,它产生前6和7中最接近的数字之间的差异。以下示例将生成0。

s <- c(1,2,3,4,5,6,3)
s <- t(s)
s <- as.data.frame(s)
s

非常感谢任何帮助。我为没有尝试过代码而道歉,因为我尝试过的任何东西实际上已经接近了。

1 个答案:

答案 0 :(得分:2)

这个怎么样?

which.min( abs(s[1, 1:6] - s[1, 7]))

我假设你想要以某种方式推广,但你需要提供更多信息。或者只是通过循环运行它: - )

编辑:从评论中添加了循环,并改变了两件小事。

s <- c(1,2,3,4,5,6,3) 
t <- c(1,2,3,4,5,6,7) 
p <- c(1,2,3,4,5,6,2) 
s <- data.frame(s,t,p) 
k <- t(s) 
k <- as.data.frame(k) 

k$t <- NA ### need to initialize the column
for(i in 1:3){ 
    ## need to refer to each line of k when populating the t column
    k[i,]$t <- which.min(abs(k[i, 1:6] - k[i, 7])) }