小编chi*_*sin的帖子

使用多个条件合并多个列

我正在尝试使用多个条件语句合并多个列。在下面的示例中,我想合并 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)

r dplyr

5
推荐指数
1
解决办法
133
查看次数

对 dplyr 中特定范围的列名进行排序

我有一个数据框,希望按字母顺序对特定列进行排序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)

r dplyr

2
推荐指数
1
解决办法
1462
查看次数

如何使用 dplyr 的跨函数替换所有值

我以前使用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)

r dplyr

0
推荐指数
1
解决办法
1540
查看次数

data.table::fwrite 保存文件名时表现奇怪

我有一个非常大的数据框,我正在对 中的列子集执行多个操作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)

r data.table

0
推荐指数
1
解决办法
272
查看次数

标签 统计

r ×4

dplyr ×3

data.table ×1