R-使用if语句对行进行迭代

R-使用if语句对行进行迭代,r,iteration,R,Iteration,我正在慢慢地自学R,有着非常基本的编程背景。制作绘图等相对简单,但我目前正在编写一小段代码,目的是构建一个更大的脚本,使商业实验室结果的处理变得不那么繁重-这些文件通常以非常混乱的CSV文件发布,并混合了不同的集中度单位 因此,我试图生成一个代码块,它遍历CSV文件中包含四列标题的行:“分析物”、“单位”、“LOD”和“浓度”。我打算让我的代码检查每个分析物使用的单位,如果单位为mg/l,则将该分析物的浓度转换为ug/l: input_file <- read.csv(file="test

我正在慢慢地自学R,有着非常基本的编程背景。制作绘图等相对简单,但我目前正在编写一小段代码,目的是构建一个更大的脚本,使商业实验室结果的处理变得不那么繁重-这些文件通常以非常混乱的CSV文件发布,并混合了不同的集中度单位

因此,我试图生成一个代码块,它遍历CSV文件中包含四列标题的行:“分析物”、“单位”、“LOD”和“浓度”。我打算让我的代码检查每个分析物使用的单位,如果单位为mg/l,则将该分析物的浓度转换为ug/l:

input_file <- read.csv(file="test.csv", header = TRUE,sep = ",")


apply(input_file, 1, function(row) {
  if (input_file$Unit == "mg/l"){
    input_file$Concentration <- input_file$Concentration*1000
  }
  }
  )

print(input_file)

input\u file我相信这就是你想要做的:

apply(input_file, 1, function(row) {
    if (row$Unit == "mg/l"){
        row$Concentration <- row$Concentration*1000
    }
})

也许,
input_file[input_file$Unit==“mg/l”,]$Concentration@symbolx我的想法,谢谢你的评论。
input_file[input_file$Unit == "mg/l", "Concentration"] <-
    input_file[input_file$Unit == "mg/l", "Concentration"]*1000