我经常发现一些问题,人们不知何故以未命名字符向量的未命名列表结束,他们想将它们逐行绑定到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) 在 ubuntu linux 21.1 上运行 Dbeaver 21.3.0。我遇到的问题是,当尝试执行查询时,我收到“无活动连接错误”。但是,在数据库导航器屏幕中,我有一个活动的远程 ms-sql-server 连接,可以看到整个数据库及其中的所有文件,可以检查它们的所有列属性等。如何让这个特定的脚本与该脚本关联特定数据库?我还想在下次打开脚本时自动关联它吗?
我有如下二进制数据:
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) 假设我有一个带有序数变量和一个分类变量的数据:
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 中数字运算的极端情况。我遇到了以下涉及零除以零的特殊情况:
(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) 我有这个数据框:
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) 我想$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,如果有人知道如何通过使用列索引而不是变量名称来解决该问题,那将会非常有帮助
我有一个表,其中每一行代表一名学生在一门课程中的注册情况,与此类似,但要大得多:
| 学生 | 课程 |
|---|---|
| 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,他们将具有以下内容:
然后,我会找到所有学生中最常见的组合。
我正在使用学习包和 Shiny 开发一个交互式测验,并注意到一旦我选择了一个问题的答案,该包会更正我的答案,但我无法将问题重置为默认值,重新启动 R 会话不会工作。有没有办法做到这一点?
谢谢
罗德尼
我最近遇到了代码 |>R 中。它是一个竖线字符(管道)后跟一个大于号。
下面是一个例子:
mtcars |> head()
Run Code Online (Sandbox Code Playgroud)
什么是|>代码在做什么?
r ×9
data.table ×2
attributes ×1
bar-chart ×1
combinations ×1
connection ×1
dataframe ×1
dbeaver ×1
dplyr ×1
ggplot2 ×1
label ×1
learnr ×1
operators ×1
pipe ×1
purrr ×1
shiny ×1
sql-server ×1
tidyverse ×1