如何用while循环将iris数据集品种名替换为双字母标识?
用while循环替换iris数据集的品种名称并处理数值列
完整实现代码
data(iris) Burak <- iris # 保留原始数据副本 running_index <- 1 # 遍历数值列并为每个数值加50 while(is.numeric(Burak[, running_index])) { Burak[, running_index] <- Burak[, running_index] + 50 running_index <- running_index + 1 } # 通过while循环替换品种名称 row_index <- 1 total_rows <- nrow(Burak) while(row_index <= total_rows) { current_species <- Burak[row_index, running_index] if(current_species == "setosa") { Burak[row_index, running_index] <- "AA" } else if(current_species == "versicolor") { Burak[row_index, running_index] <- "BB" } else if(current_species == "virginica") { Burak[row_index, running_index] <- "CC" } row_index <- row_index + 1 } # 查看替换后的结果 head(Burak)
代码说明
- 先将原始iris数据复制到
Burak变量,避免修改原数据集 - 第一个
while循环沿用原有逻辑:遍历所有数值列,为每个数值加50,直到遇到非数值列(即Species列)时停止,此时running_index会指向Species列的位置 - 第二个
while循环逐行遍历Species列,根据当前品种名称替换为对应的AA/BB/CC - 执行
head(Burak)可以查看前6行数据,验证替换是否成功
内容的提问来源于stack exchange,提问作者Halil Burak Yıldırım
相关产品推荐
相关产品推荐

