【发布时间】:2023-03-26 10:25:01
【问题描述】:
我正在慢慢自学 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)
当我运行此代码时(我使用的是 Rstudio),我收到以下错误消息:In if (input_file$Unit == "mg/l") { :
the condition has length > 1 and only the first element will be used。我找不到解决方案,而且我对编程术语的有限知识似乎阻碍了这一点。有任何想法吗?任何建议、提示或资源将不胜感激。
【问题讨论】: