Ale*_*era 1 r subset dataframe
我有一个表(作为 data.frame),它看起来像这样:
Var1 Var2 Freq
364 NI taq 100
363 BB taq 47
323 AA ret 46
361 99 taq 33
360 88 taq 69
138 77 esc 111
358 66 taq 26
357 55 taq 23
356 44 taq 20
355 33 taq 143
354 22 taq 105
314 1212 ret 66
352 11 taq 114
Run Code Online (Sandbox Code Playgroud)
我想从 Var1 中删除“NI”并将 Freq 从最高到最低排序。理论上可以用
(df <- df[!df$Var1="NI" & order(df$Freq, decreasing=TRUE),])
Run Code Online (Sandbox Code Playgroud)
但我明白了:
Var1 Var2 Freq
363 BB taq 47
323 AA ret 46
361 99 taq 33
360 88 taq 69
138 77 esc 111
358 66 taq 26
357 55 taq 23
356 44 taq 20
355 33 taq 143
354 22 taq 105
314 1212 ret 66
352 11 taq 114
Run Code Online (Sandbox Code Playgroud)
NI 已删除,但 Freq 未按预期排序。有什么我想念的吗?提前致谢
PS:我正在寻找基本的 R 解决方案。
我们可以filter先行然后做arrange
library(dplyr)
df %>%
filter(Var1 != "NI") %>%
arrange(desc(Freq))
Run Code Online (Sandbox Code Playgroud)
在 中base R,subset先行然后order根据'Freq'做
df1 <- subset(df, Var1 != "NI")
df1[order(df1$Freq, decreasing = TRUE),]
Run Code Online (Sandbox Code Playgroud)