获取数据框中的最小行数

Joe*_*ger 8 r min dataframe

我正在使用一个包含65个变量的数据帧.第一个变量为一个人编目,接下来的64个变量表示该人与64个位置中的每一个的地理距离.使用R,我想创建一个新变量,将每个人的最短距离编目到这64个位置之一.

例如:如果人X距离位置35,50,79,100,450 ......英里,我希望新变量自动为它们分配35,因为这是最短的距离.任何有关这方面的帮助将非常感激.谢谢.

Jor*_*eys 12

或者,使用贾斯汀的例子:

df$shortest <- do.call(pmin,df[-1])
Run Code Online (Sandbox Code Playgroud)

还看到?pmin?do.call,并注意您可以通过使用列表索引在您的数据帧丢弃第一变量(所以不使用任何逗号可言,也见?Extract)


Jus*_*tin 9

df <- data.frame(let=letters[1:25], d1=sample(1:25,25), d2=sample(1:25,25), d3=sample(1:25,25))

df$shortest <- apply(df[,2:4],1,min)
Run Code Online (Sandbox Code Playgroud)

第二行将函数min应用于每一行,并将其分配给data.frame df中的新列.有关?apply第二行正在做什么的更多解释,请参阅.小心跳过第一列或任何不是距离的列:

apply(df,1,min) 因为它找到了字符串的"min",所以给出了完全不同的答案.

> min(2:10)
[1] 2
> min(as.character(2:10))
[1] "10"
Run Code Online (Sandbox Code Playgroud)