我有一个大数据框,其中一个列中包含状态名,另一列中包含不同的索引。 我希望按状态进行子集化,并创建一个适合于最小化索引的对象或已经给出计算的数据框。
这是我所拥有的一个简单(简短)的例子
m
x y
1 A 1.0
2 A 2.0
3 A 1.5
4 B 3.0
5 B 3.5
6 C 7.0
我想得到这个
m
x y
1 A 1.0
2 B 3.0
3 C 7.0
我不知道是否需要带有for循环的函数。喜欢
minimize<-function(x,...)
for (i in m$x){
do something with data by factor value
apply to that something the min function in every column
return(y)
}
所以当你打电话时
minimize(A)
[1] 1
我尝试使用%in%但不起作用(我收到此错误)。
以%米A% 匹配错误(x,table,nomatch = 0L):找不到对象'A'
当我定义它时,就像这样。
A<-c("A")
"A"%in%m
[1] FALSE
提前谢谢
答案 0 :(得分:3)
答案 1 :(得分:2)
尝试aggregate
:
aggregate(y ~ x, m, min)
x y
1 A 1
2 B 3
3 C 7
答案 2 :(得分:1)
使用data.table
require(data.table)
m <- data.table(m)
m[, j=min(y), by=x]
# x V1
# 1: A 1
# 2: B 3
# 3: C 7