将多个变量添加到循环中

时间:2018-08-20 09:24:29

标签: r loops

我只做R大约三个小时,所以请忍受!

我已将csv导入R Studio。输入数据集是模型输出,在某些列中具有一些字符“ n / a”值。我已经编写了这段代码(请告诉我是否可以做得更好)以导入数据,删除“ n / a”值后将列转换为数值,而不是运行直方图:

Run_name <- " NA NA"

infile <- paste0("P:/installed-packages",Run_name,".csv")
installed_packages <- read.csv(infile)
View(installed_packages)

installed_packages$net.costs..After. <- as.numeric(replace(installed_packages$net.costs..After.,installed_packages$net.costs..After.=="n/a", NA))


hist(installed_packages$net.costs..After.)

下一步将使用循环包括多个变量名称来代替变量net.costs..After.,因为其他变量将包含这些“ n / a”值。理想情况下,这将是一个变量名表,但就目前而言,键入变量名列表将是朝着正确方向迈出的一步。

有关此操作或改进此过程的方式的任何提示吗?

1 个答案:

答案 0 :(得分:0)

最简单的解决方案是在读取数据时指定NA字符串:

installed_packages <- read.csv(infile, na.strings = "n/a")

如果要将解决方案变成循环,可以使用:

for (col_ in c("net.costs..After.", "col2", "col3")){
  installed_packages[, col_] <- as.numeric(replace(installed_packages[, col_], installed_packages[, col_]=="n/a", NA))
}

c("net.costs..After.", "col2", "col3")是包含列名称的向量。