我有2个指示器:
licence age.6-17
Na 1
1 0
Na 0
0 1
如果一个人的年龄超过17岁(第二列为0),我如何将Na更改为1,否则将其更改为0?
输出
licence age.6-17
0 1
1 0
1 0
0 1
答案 0 :(得分:2)
使用{{ form.cleaned_data.username }}
和dplyr
ifelse
无需更改yourdata %>% mutate(licence = ifelse(`age.6-17` == 0, 1,0))
的性质或列名。
此外,如果您只需要替换"Na"
个单元格,则考虑到"Na"
是此处的字符串
"Na"
如果是yourdata %>% mutate(licence = ifelse(licence == "Na" & `age.6-17` == 0, 1,0))
,则需要<NA>
而不是is.na(licence)
答案 1 :(得分:2)
在 base 中,您可以使用is.na
子集,然后从1中减去age.6.17
的值。
x <- read.table(header=T, na.string="Na", text="licence age.6-17
Na 1
1 0
Na 0
0 1")
idx <- is.na(x$licence)
x$licence[idx] <- 1-x$age.6.17[idx]
x
# licence age.6.17
#1 0 1
#2 1 0
#3 1 0
#4 0 1
或者如果您忽略实际存储在列licence
中的内容,则可以使用:
with(x, data.frame(licence=1-age.6.17, age.6.17))
# licence age.6.17
#1 0 1
#2 1 0
#3 1 0
#4 0 1
答案 2 :(得分:1)
假设您的class ParentViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
menuViewController = DrawerMenuViewController()
menuViewController.view.frame = CGRect(
x: view.frame.maxX,
y: 0,
width: view.bounds.width,
height: UIScreen.main.bounds.height)
view.addSubview(menuViewController.view)
addChild(menuViewController)
menuViewController.didMove(toParent: self)
}
}
是实际的NA
,我们可以在NA
中使用case_when
并应用条件。
dplyr
数据
library(dplyr)
df %>%
mutate(licence = case_when(is.na(licence) & age.6.17 == 0 ~ 1L,
is.na(licence) & age.6.17 == 1 ~ 0L,
TRUE ~ licence))
# licence age.6.17
#1 0 1
#2 1 0
#3 1 0
#4 0 1