我有下表(实际上还有更多行):
country sessions rank
United Kingdom 100846 1
Spain 80628 2
Italy 7628 3
USA 6628 4
France 1328 5
China 1228 6
Japan 1128 7
Russia 1028 8
Japan 928 9
Greece 828 10
Colombia 728 11
Brasil 628 12
Portugal 28 13
我想将国家France
,China
,Japan
,Russia
,...和Portugal
重命名为Other
。
有没有办法按行号或等级或会话等条件重命名这些国家?
谢谢
答案 0 :(得分:1)
这应该这样做。
df$country <- ifelse(df$session < 1300, "Other", df$country)
答案 1 :(得分:0)
some.table %>%
mutate(country = ifelse(rank <= 4, country, "Other"))
答案 2 :(得分:0)
假设country是一个因子变量,在基数R中,您可以将levels<-
与子集[
一起使用两次以获得此目标。
使用会话&lt;的标准1300,
levels(dat$country)[dat$country][dat$sessions < 1300] <- "Other"
使用排名&gt;的标准5
levels(dat$country)[dat$country][dat$rank > 5] <- "Other"
第一个[
,[dat$country]
重新排序水平以适应data.frame的顺序,第二个根据所需标准执行子集化。
数据强>
dat <-
structure(list(country = structure(c(11L, 10L, 6L, 12L, 4L, 2L,
7L, 9L, 7L, 5L, 3L, 1L, 8L), .Label = c("Brasil", "China", "Colombia",
"France", "Greece", "Italy", "Japan", "Portugal", "Russia", "Spain",
"United Kingdom", "USA"), class = "factor"), sessions = c(100846L,
80628L, 7628L, 6628L, 1328L, 1228L, 1128L, 1028L, 928L, 828L,
728L, 628L, 28L), rank = 1:13), .Names = c("country", "sessions",
"rank"), class = "data.frame", row.names = c(NA, -13L))