[英]replace values in a column into Data Frame with another value (same for all)
我的數據框由 21 列組成,對於這個問題只有一列是相關的:我想將 a 列中的值 2 或 3 或 4 或 5 替換為值 1(在同一列中)。
除了為任何值 2、3、4、5 執行下面的代碼之外,我正在尋找更優雅的東西:
df <- df %>% mutate (a = replace(a, a == 2,1))
df <- df %>% mutate (a = replace(a, a == 3,1))
df <- df %>% mutate (a = replace(a, a == 4,1))
df <- df %>% mutate (a = replace(a, a == 5,1))
所以我只知道條件“或”我需要在代碼中創建...任何解決方案?
您可以使用across
和多個值替換多個列%in%
。 例如,如果要替換列a
、 b
、 c
和d
中的值,您可以執行以下操作:
library(dplyr)
df <- df %>% mutate(across(a:d, ~replace(., . %in% 2:5, 1)))
#For dplyr < 1.0.0 use `mutate_at`
#df <- df %>% mutate_at(vars(a:d), ~replace(., . %in% 2:5, 1))
在基數 R 中,您可以使用lapply
執行此操作:
cols <- c('a','b','c','d')
df[cols] <- lapply(df[cols], function(x) replace(x, x %in% 2:5, 1))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.