小编Mat*_*att的帖子

R data.table 删除以“_nd”结尾的列

我在 R 中有一个数据表

我想删除以"_nd"结尾的列。

我的dt:

我想要

我想要这个脚本的反面

dt[,.SD, .SDcols = patterns("_nd")] 
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助

r data.table

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

使用 tabyl 运行多个交叉表

我有这样的数据:

dat <- mtcars %>% mutate(cyl2 = cyl*2,cyl3 = cyl*3)
Run Code Online (Sandbox Code Playgroud)

我想使用 tabyl 运行以下每个交叉表 [vs,cyl] [vs,cyl1] [vs,cyl2] [vs,cyl3]:

我知道我可以运行 vs, cyl 这样的命令,并对每个“cyl”变量重复此操作。不过我想形成某种循环而不是重复这个。

dat%>% 
  tabyl(vs,cyl)%>%
  adorn_percentages("row") %>%
  adorn_pct_formatting(digits = 2) %>%
  adorn_ns()
Run Code Online (Sandbox Code Playgroud)

所以我研究了一个函数:

run_xtable <- function(data,v1) {

  out <- data%>% 
  tabyl(vs,v1)%>%
  adorn_percentages("row") %>%
  adorn_pct_formatting(digits = 2) %>%
  adorn_ns()
  return(out)
}

run_xtable(dat,'cyl')
Run Code Online (Sandbox Code Playgroud)

我遇到了一些问题,非常感谢任何帮助!

  1. 该函数不接受 v1 作为引用变量。为什么是这样?我尝试用 enquo 包裹它,但没有任何区别。

    错误:必须按.data.*中找到的变量进行分组v1,未找到列。

  2. 我如何设置它,以便我可以使用类似的东西来减少重复:

    sapply(run_xtable, c('cyl','cyl1','cyl2'))

谢谢你!

r dplyr janitor

3
推荐指数
1
解决办法
339
查看次数

使列在 R 中具有唯一的名称

我有这种类型的数据框:

manufacturer  P

honda        33         
honda        32         
honda        32         
honda        29         
honda        32         
honda        34         
honda        36         
honda        36         
honda        29
Run Code Online (Sandbox Code Playgroud)

我想让列制造商具有唯一的名称。例如本田_1、本田_2。怎么做?

r

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

标签 统计

r ×3

data.table ×1

dplyr ×1

janitor ×1