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语句。
答案 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;
}