我无法弄清楚如何做到这一点.我在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)