Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R数据帧中使用if-else语句_R_Dataframe - Fatal编程技术网

在R数据帧中使用if-else语句

在R数据帧中使用if-else语句,r,dataframe,R,Dataframe,是否有一种方法可以在一行中执行最后4个操作,以简化数据帧的if-else语句。我们可以比较整个数据帧(第一列除外),检查值是否大于0,并将该值转换为数字 d = data.frame(A=c(1,1),B=c(0,20),C=c(0,10)) d$B[d$B>0] = TRUE d$C[d$C>0] = TRUE d$B[d$B==0] = FALSE d$C[d$C==0] = FALSE 我们可以比较整个数据帧(第一列除外),检查值是否大于0,并将该值转换为数字 d = dat

是否有一种方法可以在一行中执行最后4个操作,以简化数据帧的if-else语句。

我们可以比较整个数据帧(第一列除外),检查值是否大于0,并将该值转换为数字

d = data.frame(A=c(1,1),B=c(0,20),C=c(0,10))
d$B[d$B>0] = TRUE
d$C[d$C>0] = TRUE
d$B[d$B==0] = FALSE
d$C[d$C==0] = FALSE

我们可以比较整个数据帧(第一列除外),检查值是否大于0,并将该值转换为数字

d = data.frame(A=c(1,1),B=c(0,20),C=c(0,10))
d$B[d$B>0] = TRUE
d$C[d$C>0] = TRUE
d$B[d$B==0] = FALSE
d$C[d$C==0] = FALSE

我们可以使用
tidyverse

d[-1] <- d[-1] > 0

#  A     B     C
#1 1 FALSE FALSE
#2 1  TRUE  TRUE

我们可以使用
tidyverse

d[-1] <- d[-1] > 0

#  A     B     C
#1 1 FALSE FALSE
#2 1  TRUE  TRUE

您可以使用dplyr的if_else,如下所示:

library(dplyr)
d %>%
  mutate_at(2:3, funs(. > 0))
#  A     B     C
#1 1 FALSE FALSE
#2 1  TRUE  TRUE
库(dplyr)
d=数据帧(A=c(1,1),B=c(0,20),c=c(0,10))
d$B0,“真”、“假”)
d$C0,“真”、“假”)
A、B、C
1假1假
2.1正确

您可以使用dplyr的if\u else,如下所示:

library(dplyr)
d %>%
  mutate_at(2:3, funs(. > 0))
#  A     B     C
#1 1 FALSE FALSE
#2 1  TRUE  TRUE
库(dplyr)
d=数据帧(A=c(1,1),B=c(0,20),c=c(0,10))
d$B0,“真”、“假”)
d$C0,“真”、“假”)
A、B、C
1假1假
2.1正确

您只想对离开
A
B
C
列执行此操作?仅对B和C执行此操作)值也可以为负值吗?或者它是大于0还是大于0?
d[c(“B”,“c”)]
,0)
?我认为这应该是某个问题的重复,找不到接近的答案。你只想对
B
c
留下
a
?是的,仅对B和c)的列执行此操作,值也可以是负值吗?或者它是大于0还是大于0?
d[c(“B”,“c”)]
,0)
?我认为这应该是某个问题的重复,找不到接近的东西,因此回答。如果B>0返回“TRUE”,如果不是“FALSE”,我的观点是:你的ifelse调用返回的与
d$B>0
完全相同,或者实际上与
as.character(d$B>0)
相同,这是另一部分我没有找到逻辑
class(“TRUE”)
vs
class(TRUE)
如果B>0返回“TRUE”,如果不是“FALSE”,我的观点是:你的ifelse调用返回的值与
d$B>0
完全相同,或者实际上与
as.character(d$B>0)
相同,这是我没有找到逻辑
class(“TRUE”)的另一部分
vs
class(TRUE)