0
我有以下代碼[R排序方法
> x <- c("A", "B", "A", "C", "B", "A", "D")
> df <- data.frame(x)
> df
x
1 A
2 B
3 A
4 C
5 B
6 A
7 D
>
我最終想要打上新的列中的數據幀行,以便x的每個實例都標有它的排名像這樣
1 A 1
2 B 1
3 A 2
4 C 1
5 B 2
6 A 3
7 D 1
這是我一直在想的方式,但我不確定這是否是最好的方式
> df$y <- sapply(df$x, function(x){order(which(df$x==x))});
> df
x y
1 A 1, 2, 3
2 B 1, 2
3 A 1, 2, 3
4 C 1
5 B 1, 2
6 A 1, 2, 3
7 D
所以,基本上,我現在以順序方式將每個'x'與索引一起構成一個數據框。
如何在不編寫顯式循環的情況下從此處繼續?有更好的方法嗎?
這工作。但是,我是R新手,沒有遇到過seq_len(.N)。你能指點我的相關文件嗎? – user3701522
它非常簡單seq_len(x)爲您提供從1到x的序列,.N是數據表語法並計算行數 –