我有一个函数,我在其中计算R
中列的计数
我想根据传递给函数的给定列表来安排我的数据框条目
输入以这种形式出现:
complete( c(2, 55, 8, 111, 12))
complete(30:25)
我的数据框按ID升序排列,我希望按照给出的列表进行排列
id nobs
2 463
8 586
12 338
55 711
111 932
应排序/重新排列为:
id nobs
2 463
55 711
8 586
111 932
12 338
答案 0 :(得分:0)
这是使用合并的可能方法:
# data.frame to sort
DF <-
read.csv(text=
'id,nobs
2,463
8,586
12,338
55,711
111,932')
# keys to use for sorting
keys <- c(2, 55, 8, 111, 12)
keyDF <- data.frame(key=keys,weight=1:length(keys))
merged <- merge(DF,keyDF,by.x='id',by.y='key',all.x=T,all.y=F)
res <- merged[order(merged$weight),c('id','nobs')]
> res
id nobs
1 2 463
4 55 711
2 8 586
5 111 932
3 12 338
N.B。
id
包含key
向量中不存在的值,那么这些值将转到data.frame的底部。