R data.frame; 获取列中的值范围

Rya*_*ons 1 aggregate r

我无法弄清楚如何做到这一点.我在R中有一个data.frame.它看起来像这样:

Scores <- read.table(text = "
        ID Test1 Test2 Test3 Final
1 Student1    20    23    21    48
2 Student2    16    15    18    36
3 Student3    25    20    22    40
4 Student4    14    19    18    42
5 Student5    10    15    14    30
")
Run Code Online (Sandbox Code Playgroud)

我想要的是创建一个新的数据对象,其中包含每个测试的值范围,包括final.所以它看起来像这样:

result <- read.table(text = "
       min max
Test1  10  25
Test2  15  23
Test3  14  22
Final  30  48
")
Run Code Online (Sandbox Code Playgroud)

老实说,无论是仅列出最大值和最小值,还是实际计算差值,我都无所谓.我只是无法找到实现这一点的方法,这不是一种不必要的复杂.我知道我可以手动和单独拉出列,但必须有一些更好的方法来做到这一点.有什么涉及by()tapply()?但我无法让他们工作.

有任何想法吗?

Señ*_*r O 10

有点简单:

> t(sapply(test, range))
  [,1] [,2]
a    1    3
b    2    5
d    1    2
Run Code Online (Sandbox Code Playgroud)

  • 需要找到一个范围,使用`range()` - 对我来说似乎是最明智的选择. (3认同)