使用R中的条件从另一个列计算列 [英] Calculating a column from Another column using a condition in R

查看:53
本文介绍了使用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中的条件从另一个列计算列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆