更改r中所有值中最小的3行

  • 本文关键字:3行 更改 r database variables var
  • 更新时间 :
  • 英文 :


我有一个看起来像这样的数据

您可以在r进制中使用一行代码来完成此操作。使用rank获取每个条目的顺序,找出排名低于4的,然后使用ifelse根据此选择't'或'f'。

within(df, y <- ifelse(rank(x) < 4, "t", "f"))
#>    x y
#> 1  3 t
#> 2 14 f
#> 3  1 t
#> 4  7 t

数据取自问题

df <- data.frame(x = c(3, 14, 1, 7), y = "f")
library(dplyr)
df <- data.frame(
x = c(3L, 14L, 1L, 7L),
y = c("f", "f", "f", "f")
)

df %>% 
mutate(
y = case_when(
x == sort(x)[1] ~ "t",
x == sort(x)[2] ~ "t",
x == sort(x)[3] ~ "t",
TRUE ~ "f"
)
)
#>    x y
#> 1  3 t
#> 2 14 f
#> 3  1 t
#> 4  7 t

由reprex包(v2.0.1)在2022-07-12创建

按x的升序排列数据框,然后编辑前三行的y值。

data <- data[order(x),]
for (i in 1:3) {
data$x[i] <- 't'
}

相关内容

  • 没有找到相关文章

最新更新