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

时间:2018-03-28 04:33:47

标签: r dataframe

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

有没有办法在一行中完成最后4次操作,以简化数据帧的if else语句。

3 个答案:

答案 0 :(得分:3)

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

d[-1] <- as.numeric(d[-1] > 0)

d
#  A B C
#1 1 0 0
#2 1 1 1

或者,如果我们想要将值保持逻辑,我们可以删除as.numeric调用

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

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

答案 1 :(得分:1)

我们可以使用import os import pathlib def list_content_recursively(start_point): print("Call from: " + str(start_point)) for entry in os.listdir(start_point): entry_path = pathlib.Path(start_point) / entry if os.path.isfile(entry_path): print("File: " + str(entry)) if os.path.isdir(entry_path): list_content_recursively(entry_path) list_content_recursively(pathlib.Path('.'))

tidyverse

答案 2 :(得分:-1)

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

input {
    width: 60px;height: 23px;padding-left: 20px;
}