【发布时间】:2011-12-07 13:34:43
【问题描述】:
这是the question presented for matrix before 的变体。
我需要逐行查找数据框的第一个、第二个、...最大值和 将每一个存储在一个单独的新列中。
我需要构建的函数应该是这样的:
> set.seed(1)
> v1 <- runif(10,1,10)
> v2 <- runif(10,1,10)
> v3 <- runif(10,1,10)
> Dt <- datal.frame( v1, v2, v3 )
> head(Dt, 3)
v1 v2 v3
1 3.390 2.854 9.412
2 4.349 2.589 2.909
3 6.155 7.183 6.865
> label <- big(Dt, pos=1)
#### # big a function to find the first, second, .... (pos) biggets value and returns its label
> label
[1] "v3" "v1" "v2" ...
> big(Dt, pos=2)
[1] "v1" "v3" "v3" ...
谢谢。 娟
【问题讨论】:
-
认为这需要更多解释。结果在这里多久?它的长度是否为 10,与矩阵的行相同(您在这里制作了一个矩阵,而不是数据框,因此也需要调整)。你能用实际数字做一个例子吗(如果你想要可重现的随机数,请使用 set.seed(310366) )并向我们展示答案应该是什么。哦,“第一、第二”是指“最小的、次小的”?
-
这个问题没有明确表述。您的标题与第二段有所不同。请使其保持一致并清楚地制定您想要的内容(逐行或总体最大值......)
-
@Spacedman,你是对的。我的文字很混乱。我需要变量的标签。抱歉,我应该使用 cbind 的 data.frame 函数。我正在查看前 1 或 2 个最大数字的列表。
-
@Thomas 我的英语有严重问题。但也与 R. 也许我的最后一句话应该被删除。你不觉得吗?我的问题是逐行的,而不是整体的。如果需要,结果应该可以作为另一个变量存储在同一数据框中。