在R中使用if / else语句在数据框中应用函数

沃施水

我有一个数据框看起来像下面

data.1 <- data.frame(
  X1 = 6:10,
  X2 = 1:5,
  X3 = c(TRUE,FALSE,TRUE,FALSE,TRUE)
)

  X1 X2    X3
1  6  1  TRUE
2  7  2 FALSE
3  8  3  TRUE
4  9  4 FALSE
5 10  5  TRUE

我想使用以下逻辑创建一个新列X4:

if X3==NULL then X4=NULL
elseif X3==TRUE then X4=X1+X2 
else X4=X1-X2

提前致谢

乔纳森·卡洛尔(Jonathan Carroll)

lapply 用于当您的数据是列表时,而不是您在做什么。

首先,您不会在中找到NULL条目data.frameNA,当然可以,但是不可以NULL,因此您应该围绕进行工作is.na()接下来,您不需要测试if(x==TRUE)R知道如何使用if(x)好吧,那么正事了;你大部分时间都和你在一起ifelse您可以将向量分配给的输出,ifelse它将为您处理向量化

data.1$X4 <- ifelse(is.na(data.1$X3), 
                    NA, 
                    ifelse(data.1$X3==TRUE,
                           data.1$X1+data.1$X2,
                           data.1$X1-data.1$X2))

data.1
##   X1 X2    X3 X4
## 1  6  1  TRUE  7
## 2  7  2 FALSE  5
## 3  8  3  TRUE 11
## 4  9  4 FALSE  5
## 5 10  5  TRUE 15

那太丑了。dplyr包括非标准评估,该评估涉及在名称空间中搜索列,因此您不必每次引用引用列时都引用数据名称,这使它更加简洁。dplyr::mutate更改列。

library(dplyr)
mutate(data.1, X4 = ifelse(is.na(X3), 
                           NA, 
                           ifelse(X3, 
                                  X1+X2, 
                                  X1-X2)))

data.1
##   X1 X2    X3 X4
## 1  6  1  TRUE  7
## 2  7  2 FALSE  5
## 3  8  3  TRUE 11
## 4  9  4 FALSE  5
## 5 10  5  TRUE 15

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在R中使用if / else语句在数据框中应用函数

来自分类Dev

在 R 数据框中使用 if else 语句

来自分类Dev

在R中:帮助在数据框中使用rle()函数

来自分类Dev

在R中:帮助在数据框中使用rle()函数

来自分类Dev

如何使用R在数据框中的特定列上应用函数?

来自分类Dev

如何使用R在数据框中的特定列上应用函数?

来自分类Dev

在数据框中应用列的函数,该函数使用每行的值作为输入

来自分类Dev

应用if else语句涉及R中的两个数据框列

来自分类Dev

如何在数据框中按行应用函数以在r中生成新的或扩展的数据框

来自分类Dev

R:在数据框中为分组应用SVM功能

来自分类Dev

R:根据数据框 B 的值在数据框 A 上应用函数

来自分类Dev

R-在数据框中使用括号

来自分类Dev

R. 在数据框中运行优化函数

来自分类Dev

如何在熊猫数据框中使用If Else语句?

来自分类Dev

在R中使用函数

来自分类Dev

在熊猫中使用自定义聚合函数在数据框中创建新列

来自分类Dev

在数据框中使用“或”

来自分类Dev

如何使用if else语句基于str值在r数据框中创建新列?

来自分类Dev

在数据框中对象的标题中使用斜体

来自分类Dev

在数据框列上使用rvest函数

来自分类Dev

在 r 的应用函数中使用 kmeans

来自分类Dev

使用条件语句在数据框中查找先前的最大索引

来自分类Dev

使用嵌套的if语句python pandas在数据框中填充None

来自分类Dev

在R中的sqldf中使用INSERT语句

来自分类Dev

在R中使用toString函数

来自分类Dev

在R中使用system()函数

来自分类Dev

在R中使用ts()函数

来自分类Dev

在R中使用distinct()函数

来自分类Dev

使用R将条件语句应用于数据框中的所有元素

Related 相关文章

热门标签

归档