我有下面提到的数据在R.
ID First Value End Value First Grade Final Grade
I-1 150000 5000 100 -80
I-2 150000 5000 100 80
I-3 NA NA NA NA
I-4 1000 1500 75 100
通过使用上面的d
据我所知,case_when()是ifelse()的通用版本。
但是,我不明白如何在dplyr::mutate()函数中使用这个函数。它以前使用github的上一个版本的dplyr,但由于我回到CRAN版本(0.5),它不再工作了。有人有线索吗?
以下是我的可复制的例子:
library(devtools)
library(tibble)
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats'
我希望将列中的所有NA值都改为0,将所有其他值都改为1。但是,我无法使case_when和is.na的组合起作用。 # Create dataframe
a <- c(rep(NA,9), 2, rep(NA, 10))
b <- c(rep(NA,9), "test", rep(NA, 10))
df <- data.frame(a,b, stringsAsFactors = F)
# Create new column (c), where all NA values in (a) are transformed to 0 and other valu
我有一个名为data的数据帧,其中包含一个名为Sex的列。在一次调查中,这个问题提供了两个初始选项,“男性”和“女性”,以及“其他”选项,这是开放式的,人们可以写任何他们想写的东西。 为了简单起见,我正在尝试将所有其他选项重新编码为NA,并仅保留男性和女性。这是我的尝试: data %>%
mutate(Sex = case_when((Sex != "Male" & Sex != "Female") ~ NA)) 但是,这会产生一个包含所有NAs的列。我也尝试了以下方法,尽管我认为这没有任何意义: data %>%
mutat
我有以下数据集。
df <- data.frame(a = c(NA, NA, 1,5),
b = c(NA, NA, 2, 3),
c = c(NA, 5, NA, 5),
d = c(3, NA, NA, NA))
我想平均每行所有这些变量。但是,当每一行只有一个值时,我希望R返回NA。
我该怎么做?
结果应该是这样的:
a b c d average
NA NA NA 3 NA
NA NA 5 NA NA
1 2 NA NA 1.5
5 3 5 NA 4,33
非常感
我的代码是:
data$E<-ifelse(data$D==data$B, "b", ifelse(data$D==data$C, "c", "unknowwn"))
结果:
A B C D E
1 16 16 NA 16 b
2 20 NA 20 20 NA
3 24 NA NA 24 NA
但我想要的是
A B C D E
1 16 16 NA 16 b
2 20 NA 20 20 c
3 24 NA NA 24 unknowwn
有人知道如何解决这