【问题标题】:Translation and remove action with if else statement使用 if else 语句翻译和删除操作
【发布时间】:2021-12-25 12:44:04
【问题描述】:

所以我正在研究一个数据集,该数据集有一列包含许多不同的值。为了给你一个想法,我在下面创建了示例。我想添加一些功能以跳过大量的手动工作。

一个小例子:

Species = c(
    "setosa", "setosa", "setosa", "setosa",
    "setosa", "setosa", "setosa", "setosa", 
    "setosa", "setosa", "setosa", "setosa", 
    "setosa", "setosa", "setosa", "setosa", 
    "setosa", "setosa", "versicolor", "versicolor",
    "versicolor", "versicolor", "versicolor", "versicolor",
    "versicolor", "versicolor", "versicolor", "versicolor",
    "versicolor", "versicolor", "versicolor", "versicolor", "versicolor",
    "versicolor", "versicolor", "versicolor", "versicolor",
    "virginica", "virginica", "virginica", "virginica", "virginica",
    "virginica", "virginica", "virginica", "virginica",
    "virginica", "virginica", "virginica", "virginica"

因此,对于上述数据集,我想重命名这些值。未提及的值应更改为空值,如“”。 (例如见下文)

library(dplyr)

translate <- function(x) {
 x %>% recode(
   "setosa" = "good",
   "verginica" = "bad"
   "versicolor" = "")

translate(Species)

我想知道是否有一个选项可以将最后一个 "versicolor" = "" 更改为某种 else 语句,其中所有其他值(因此不仅是 versicolor)将更改为像 "" 这样的空值

【问题讨论】:

    标签: r function recode


    【解决方案1】:

    您可以考虑在数据集中简单地添加一个新列。例如,

    # for values that are not mentioned
    data$Species1 <- ""
    
    # for values that are mentioned
    data$Species1[which(data$Species == "setosa")] <- "good"
    data$Species1[which(data$Species == "verginica")] <- "bad"
    
    

    您可以将 Species1 保留在数据集中,或者将其替换为 Species 然后删除 Species1。

    data$Species <- data$Species1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-30
      • 1970-01-01
      • 2021-01-27
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多