我正在尝试使用多个条件语句合并多个列。在下面的示例中,我想合并 A 优先于 B,然后是 C,其中 A >= 0.1 和 < 30,而 A 是 NA,< 0.1 或 > 30 我要合并 B 优先于 A,然后是C。
下面是一个示例数据集:
df <- data.frame(1:8)
df$A <- c(102, 0.04, 0.1, NA_real_, 0.01, 0.01, 0.2, NA_real_)
df$B <- c(20.2, 50.1, 10.1, 6.1, 7.1, NA_real_, 8.1, NA_real_)
df$C <- c(NA_real_, 4.1, NA_real_, NA_real_, NA_real_, 8.1, NA_real_, 10.1)
A B C
1 102 20.2 NA
2 0.04 50.1 4.1
3 0.1 10.1 NA
4 NA 6.1 NA
5 0.01 7.1 NA
6 …Run Code Online (Sandbox Code Playgroud) 我有一个数据框,希望按字母顺序对特定列进行排序dplyr。我知道我可以使用下面的代码对所有列进行排序,但我只想按字母顺序对 C、B 和 A 列进行排序。我尝试使用该across函数,因为我实际上想选择 C:A 列,但这不起作用。
df <- data.frame(1:16)
df$Testinfo1 <- 1
df$Band <- 1
df$Alpha <- 1
df$C <- c(10,12,14,16,10,12,14,16,10,12,14,16,10,12,14,16)
df$B <- c(10,0,0,0,12,12,12,12,0,14,NA_real_,14,16,16,16,16)
df$A <- c(1,1,1,1,1,1,1,1,1,1,1,14,NA_real_,NA_real_,NA_real_,16)
df
df %>%
select(sort(names(.)))
A Alpha B Band C Testinfo1 X1.16
1: 1 1 10 1 10 1 1
2: 1 1 0 1 12 1 2
3: 1 1 0 1 14 1 3
4: 1 1 0 1 16 1 4
5: 1 1 12 1 …Run Code Online (Sandbox Code Playgroud) 我以前使用mutate_all函数 indplyr来替换数据框中的值。我正在尝试更新我的代码以适应新的跨功能,但我不确定如何更新它以便它可以执行替换功能。
下面是一个示例数据集。
df$A <- c(10,0,0,0,0,0,12,12,0,14,-99,14,-99,-99,16,16)
df$B <- c(10,0,0,0,12,12,12,12,0,14,-99,14,16,16,16,16)
df$C <- c(10,12,14,16,10,12,14,16,10,12,14,16,10,12,14,16)
A B C
10 10 10
0 0 12
0 0 14
0 0 16
0 12 10
0 12 12
12 12 14
12 12 16
0 0 10
14 14 12
-99 -99 14
14 14 16
-99 16 10
-99 16 12
16 16 14
16 16 16
Run Code Online (Sandbox Code Playgroud)
我之前用来替换某个值(在本例中为 -99)的代码如下,并且成功运行。
df %>% mutate_all(funs(replace(., .== -99, "Removed")))
A B C
10 10 …Run Code Online (Sandbox Code Playgroud) 我有一个非常大的数据框,我正在对 中的列子集执行多个操作lapply,其中包括使用导出子集data.table::fwrite
我有多列字母相同但大小写不同的列(例如 Co2 和 CO2)。当我获取列名并lapply使用dplyr::select选择的正确列运行该过程时(即选择正确的大小写),但是当我导出数据时,某些导出的文件名的大小写不正确,而其他文件名的大小写正确。
例如,下面是一个示例数据框
test_df <- data.frame('CO2' = c(1,2,3,4,5),
'Co2' = c(6,7,8,9,10))
CO2 Co2
1 1 6
2 2 7
3 3 8
4 4 9
5 5 10
Run Code Online (Sandbox Code Playgroud)
下面是我用来选择所使用的列的代码,lapply后面是使用的数据集的简单子集lapply(请注意输出与预期一致)。
test_colnames <- test_df %>% colnames()
lapply(test_colnames, function(x){
var_name <- all_of(x)
export <- test_df %>%
select(!!var_name) })
[[1]]
CO2
1 1
2 2
3 3
4 4
5 5
[[2]]
Co2
1 6
2 7
3 8 …Run Code Online (Sandbox Code Playgroud)