簡體   English   中英

用另一個值將列中的值替換為數據框(對所有值都相同)

[英]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% 例如,如果要替換列abcd中的值,您可以執行以下操作:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM