小编Ian*_*ell的帖子

按行绑定未命名向量的未命名列表的 Tidyverse 方法 - do.call(rbind,x) 等效

我经常发现一些问题,人们不知何故以命名字符向量的未命名列表结束,他们想将它们逐行绑定到data.frame. 下面是一个例子:

library(magrittr)
data <- cbind(LETTERS[1:3],1:3,4:6,7:9,c(12,15,18)) %>%
  split(1:3) %>% unname
data
#[[1]]
#[1] "A"  "1"  "4"  "7"  "12"
#
#[[2]]
#[1] "B"  "2"  "5"  "8"  "15"
#
#[[3]]
#[1] "C"  "3"  "6"  "9"  "18"
Run Code Online (Sandbox Code Playgroud)

一种典型的方法是使用do.call基础 R。

do.call(rbind, data) %>% as.data.frame
#  V1 V2 V3 V4 V5
#1  A  1  4  7 12
#2  B  2  5  8 15
#3  C  3  6  9 18
Run Code Online (Sandbox Code Playgroud)

也许一种效率较低的方法是Reduce从基础 R 开始。

Reduce(rbind,data, init …
Run Code Online (Sandbox Code Playgroud)

r dplyr data.table purrr tidyverse

34
推荐指数
6
解决办法
1116
查看次数

Dbeaver 没有活动连接

在 ubuntu linux 21.1 上运行 Dbeaver 21.3.0。我遇到的问题是,当尝试执行查询时,我收到“无活动连接错误”。但是,在数据库导航器屏幕中,我有一个活动的远程 ms-sql-server 连接,可以看到整个数据库及其中的所有文件,可以检查它们的所有列属性等。如何让这个特定的脚本与该脚本关联特定数据库?我还想在下次打开脚本时自动关联它吗?

sql-server connection dbeaver

24
推荐指数
2
解决办法
3万
查看次数

将值从一列复制到给定条件的下一列

我有如下二进制数据:

ID <- c("A", "B", "C", "D", "E", "F")
Q0 <- c(0, 0, 0, 0, 0, 0)
Q1 <- c(0, 1, 0, 0, NA, 1) 
Q2 <- c(0, NA, 1, 0, NA, 1) 
Q3 <- c(0, NA, NA, 1, NA, 1) 
Q4 <- c(0, NA, NA, 1, NA, 1)

dta <- data.frame(ID, Q0, Q1, Q2, Q3, Q4)

Run Code Online (Sandbox Code Playgroud)

如果其中一列中的行为 1,则所有后续列也应为 1。如果有 0 或 NA,则下一列应保持原样。

换句话说,如何根据相对位置中列的值有条件地更改多个列的值?

上述数据框的预期输出是:

ID    Q0    Q1    Q2    Q3    Q4
A     0     0     0     0     0
B     0     1 …
Run Code Online (Sandbox Code Playgroud)

r

17
推荐指数
7
解决办法
3267
查看次数

如何在 ggplot 的条形图中添加影线、条纹或其他图案或纹理?

假设我有一个带有序数变量和一个分类变量的数据:

set.seed(35)
df <- data.frame(Class = factor(rep(c(1,2),times = 80), labels = c("Math","Science")),
                 StudyTime = factor(sort(sample(1:4, 16, prob = c(0.25,0.3,0.3,0.15), replace = TRUE)),labels = c("<5","5-10","10-20",">20")),
                 Nerd = factor(sapply(rep(c(0.1,0.3,0.5,0.8),c(30,50,50,30)), function(x)sample(c("Nerd","NotNerd"),size = 1, prob = c(x,1-x))),levels = c("NotNerd","Nerd")))
Run Code Online (Sandbox Code Playgroud)

人们可以使用ggplotand geom_barwith x, filland alpha(or color) 美学映射来可视化这些变量之间的关系。

ggplot(data = df, aes(x = Class, fill = StudyTime, alpha = Nerd)) + 
  geom_bar(position = "dodge", color = "black") + 
  scale_alpha_manual(values = c(Nerd = 0.5, NotNerd = 1)) +
  scale_fill_manual(values = …
Run Code Online (Sandbox Code Playgroud)

r bar-chart ggplot2

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

添加 NA 和计算结果为 NaN 的表达式会根据顺序返回不同的结果,是否违反了交换性?

我正在研究 R 中数字运算的极端情况。我遇到了以下涉及零除以零的特殊情况:

(0/0)+NA
#> [1] NaN
NA+(0/0)
#> [1] NA
Run Code Online (Sandbox Code Playgroud)

reprex 包( v2.0.0 )于 2021 年 7 月 10 日创建

会话信息
sessionInfo()
#> R version 4.1.0 (2021-05-18)
#> Platform: x86_64-apple-darwin17.0 (64-bit)
#> Running under: macOS Big Sur 10.16
#> 
#> Matrix products: default
#> BLAS:   /Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRblas.dylib
#> LAPACK: /Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRlapack.dylib
#> 
#> locale:
#> [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
#> 
#> attached base packages:
#> [1] stats     graphics  grDevices utils     datasets  methods   base     
#> 
#> loaded via a namespace (and not …
Run Code Online (Sandbox Code Playgroud)

r commutativity

11
推荐指数
2
解决办法
697
查看次数

计算某个值出现的次数并将结果添加到列中

我有这个数据框:

   Generacion 1 2 3 4 5 6 NP1 NP2 NP3 NP4 NP5 NP6
1:          1 0 0 0 0 0 0   4   4   4   4   5   5
2:          2 0 0 0 0 0 0   4   4   4   4   4   4
3:          3 0 0 0 0 0 0   5   5   5   5   5   5
4:          4 0 0 0 0 0 0   4   5   5   5   4   4
5:          5 0 0 0 0 0 0   5   4 …
Run Code Online (Sandbox Code Playgroud)

r dataframe data.table

8
推荐指数
2
解决办法
254
查看次数

R使用列索引从避风港标记数据框中提取属性(x)$标签

我想$label从避风港标记的数据集中提取属性,但在使用列索引而不是列名称时总是失败。

我做了什么:

library(haven)
df <- read_sav(mydata.sav)

attributes(df$gender) 
#$`label`
#[1] "Are you ...?"
#
#$format.spss
#[1] "F1.0"
#
#$display_width
#[1] 0
#
#$class
#[1] "haven_labelled"
#
#$labels
#
#female male
# 
#     1        2 
Run Code Online (Sandbox Code Playgroud)

但使用:

attributes(df[,2])
#  $`names`
#[1] "gender"
#
#$row.names
#....
#
#$class
#
#[1] "tbl_df"     "tbl"        "data.frame"
Run Code Online (Sandbox Code Playgroud)

因为数据集中有很多变量,而且我不使用 SPSS,如果有人知道如何通过使用列索引而不是变量名称来解决该问题,那将会非常有帮助

attributes label r

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

如何识别组内最常见的值组合?

我有一个表,其中每一行代表一名学生在一门课程中的注册情况,与此类似,但要大得多:

学生 课程
001 PSYC101
001 化学102
002 PSYC101
002 斯潘101
002 生物101
003 生物101
003 英语201
003 欣德101
003 化学102
004 PSYC101
004 化学102
004 欣德101

我想知道学生最常一起修读哪些课程组合。我从 2 道菜组合开始,但也可能想看看 3 道菜组合。

我完全不知道这个程序的名称。

我发现这个使用该dplyr包的类似示例:/sf/ask/4312923471/

但是,我不认为这正是我想要的。当某些学生修读了 2 门以上课程时,我想要所有可能的 2 门课程组合。例如,对于学生 3,他们将具有以下内容:

  • BIO101 和 ENG201
  • BIO101 & HIND101
  • 生物101 & 化学102
  • ENG201 和 HIND101
  • ENG201 和 CHEM102
  • HIND101 和 CHEM102

然后,我会找到所有学生中最常见的组合。

combinations r

6
推荐指数
2
解决办法
188
查看次数

在 R 包学习器中重置测验

我正在使用学习包和 Shiny 开发一个交互式测验,并注意到一旦我选择了一个问题的答案,该包会更正我的答案,但我无法将问题重置为默认值,重新启动 R 会话不会工作。有没有办法做到这一点?

谢谢

罗德尼

r shiny learnr

5
推荐指数
0
解决办法
163
查看次数

|&gt;(管道大于)在R中是什么意思?

我最近遇到了代码 |>R 中。它是一个竖线字符(管道)后跟一个大于号。

下面是一个例子:

mtcars |> head()
Run Code Online (Sandbox Code Playgroud)

什么是|>代码在做什么?

r pipe operators

5
推荐指数
3
解决办法
179
查看次数