本文介绍了使用R中的条件从另一个列计算列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个类似的数据框;
I have a data frame like;
method SOC
walkley black 0.5
walkley black 1.2
combustion 0.8
combustion 0.7
我想创建一个名为new_SOC的新列.我想将SOC乘以10,然后将其放入new_SOC.我只想让沃克利·布莱克(Walley Black)方法和其他方法不适用.
I want to make a new column called new_SOC.I want to multiply SOC by 10 and put it in new_SOC.I want to do this only for walkley black method and others to be NA.
我编写了以下代码,但没有成功:感谢您的帮助.
I made the following codes but I was not successful:I appreciate your help.
## make an empty column called new_SOC
df$new_SOC <- c("")
## Make a loop to calculate the new column with condition.
for (i in 1:length(df)){
if (df$method == " walkley black") {
df$new_SOC = df$SOC*10
}
else{df$new_SOC == "NA"}
}
推荐答案
我们还可以使用 case_when
library(dplyr)
df1 <- df %>%
mutate(new_SOC = case_when(method == "walkley black" ~ SOC * 10))
或使用 base R
i1 <- df$method == 'walkley black"
df$new_SOC[i1] <- df$SOC[i1] * 10
这篇关于使用R中的条件从另一个列计算列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!