我正在寻找可以解决这个难题的Tidyverse /扫帚解决方案:
假设我有不同的DV和一组特定的IVS,我想进行回归,考虑每个DV和这组特定的IV.我知道我可以使用像我这样的东西或应用家庭,但我真的想用tidyverse来运行它.
以下代码作为示例
ds <- data.frame(income = rnorm(100, mean=1000,sd=200),
happiness = rnorm(100, mean = 6, sd=1),
health = rnorm(100, mean=20, sd = 3),
sex = c(0,1),
faculty = c(0,1,2,3))
mod1 <- lm(income ~ sex + faculty, ds)
mod2 <- lm(happiness ~ sex + faculty, ds)
mod3 <- lm(health ~ sex + faculty, ds)
summary(mod1)
summary(mod2)
summary(mod3)
Run Code Online (Sandbox Code Playgroud)
收入,幸福和健康都是DV.性别和教师是IV,他们将用于所有回归.
这是我发现的最接近的
让我知道如果我需要澄清我的问题.谢谢.
我知道有几种方法可以比较回归模型。创建模型(从线性到多个)并比较 R2、调整后的 R2 等的一种方法:
Mod1: y=b0+b1
Mod2: y=b0+b1+b2
Mod3: y=b0+b1+b2+b3 (etc)
Run Code Online (Sandbox Code Playgroud)
我知道有些包可以执行逐步回归,但我正在尝试使用 purrr进行分析。我可以创建几个简单的线性模型(感谢这里的这篇文章),现在我想知道如何创建回归模型,将特定的 IV 添加到方程:
可复制代码
data(mtcars)
library(tidyverse)
library(purrr)
library(broom)
iv_vars <- c("cyl", "disp", "hp")
make_model <- function(nm) lm(mtcars[c("mpg", nm)])
fits <- Map(make_model, iv_vars)
glance_tidy <- function(x) c(unlist(glance(x)), unlist(tidy(x)[, -1]))
t(iv_vars %>% Map(f = make_model) %>% sapply(glance_tidy))
Run Code Online (Sandbox Code Playgroud)
我想要的是:
Mod1: mpg ~cyl
Mod2: mpg ~cly + disp
Mod3: mpg ~ cly + disp + hp
Run Code Online (Sandbox Code Playgroud)
非常感谢。
全部。我想使用dplyr 和/或 broom 包从相关矩阵中获取 p 值 ,并同时测试多个变量。我知道其他方法,但 dplyr 对我来说似乎更简单、更直观。此外,dplyr 需要关联每个变量以获得特定的 p 值,这使得该过程更容易、更快。
我检查了其他链接,但它们对这个问题不起作用(示例 1、示例 2、示例 3)当我使用此代码时,会报告相关系数。然而,P 值却并非如此。
agreg_base_tipo_a %>%
dplyr::select(S2.RT, BIS_total, IDATE, BAI, ASRS_total) %>%
do(as.data.frame(cor(., method="spearman", use="pairwise.complete.obs")))
Run Code Online (Sandbox Code Playgroud)
请检查这个可复制的代码到word:
set.seed(1164)
library(tidyverse)
ds <- data.frame(id=(1) ,a=rnorm(10,2,1), b=rnorm(10,3,2), c=rnorm(5,1,05))
ds %>%
select(a,b,c) %>%
do(as.data.frame(cor(., method="spearman", use="pairwise.complete.obs")))
Run Code Online (Sandbox Code Playgroud) 假设我有一个名称非常奇怪的数据集,我想修改/替换变量名称字符串的一部分,并添加一个逻辑序列。下面的代码工作得很好,因为它用“var”替换了“nameverybig”。
library(tidyverse)
ds <- data.frame(identification = 1:10,
nameverybig_do_you_like_cookies = c(1:10),
nameverybig_have_you_been_in_europe = c(1:10),
nameverybig_whats_your_gender = c(1:10))
ds <- ds %>%
rename_all(.,~sub("nameverybig_*",
paste("var"),
names(ds)))
Run Code Online (Sandbox Code Playgroud)
但是我在重命名字符串和添加逻辑序列的过程中苦苦挣扎。
ds %>% names
dados <- ds %>%
rename_all(.,~sub("nameverybig_*",
paste("var", 1:3),
names(ds)))
Run Code Online (Sandbox Code Playgroud)
我想留在 tidyverse 框架内。我试过rename_all
+contains
和匹配,和rename_at
,但没有成功。我将此代码基于其他帖子,例如this one和this one
This post具有可重现的代码。如果我需要提高问题的质量,请告诉我。谢谢你。
我认为我非常接近完成此代码,但是我在这里遗漏了一些东西。我想像这样将两个图“组合”为一个图:
ggplot(test, aes(y=key,x=value)) +
geom_path()+
coord_flip()
Run Code Online (Sandbox Code Playgroud)
第二个是下面这个:
ggplot(test, aes(x=value, fill=key)) +
geom_density() +
coord_flip()
Run Code Online (Sandbox Code Playgroud)
当我们了解正态分布时,这种多重分布图通常会在统计手册中看到。到目前为止,我最有用的链接就是这里的链接。
请使用此代码重现我的问题:
library(tidyverse)
test <- data.frame(key = c("communication","gross_motor","fine_motor"),
value = rnorm(n=30,mean=0, sd=1))
ggplot(test, aes(x=value, fill=key)) +
geom_density() +
coord_flip()
ggplot(test, aes(y=key,x=value)) +
geom_path(size=2)+
coord_flip()
Run Code Online (Sandbox Code Playgroud)
非常感谢
这是一个基本问题,但我花了2个小时寻找答案,我没有找到解决方法.我有一个李克特量表(0,5,10),但不幸的是,我的数据集有一些不同的值(例如,800).我写了一个可复制的代码.
我想使用dplyr只保留我只有0,5,10的行(或者删除整个行,我有一个奇怪的结果)
示例代码:
dat <- data.frame(v1=c(10,5,0,10),
v2=c(10,0,0,800),
v3=c(10,0,0,5),
v4=c(800,10,5,10),
v5=c(0,800,5,10))
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用这样的东西:
dat2 <- dat %>% filter(rowSums(.) < 50)
Run Code Online (Sandbox Code Playgroud)
但是我想"循环"所有数据集以丢弃我所拥有的不同数字的行.
谢谢
只是结合上下文,我从事心理测量/心理测试。我有一个由“点”、“百分位数”、“z_real”、“z_normal”、“iq”组成的数据集。我想要一个 ggplot,其中可以呈现 Z_score(来自我的原始数据)、z_score(具有基础正态分布),然后有两个带有“原始分数”和“智商分数”的补充 x 轴。这在统计中很常见,您可以在下面查看
这是目前的剧情
这是我得到的最好的解决方案
这就是想要的剧情
我正在与 tidyverse 合作,我想留在其中。以前的一些帖子对我有帮助,例如这个[一] [5]和这个[一] [6]。
谢谢。(部分)数据和代码在这里:
ask_ds <- structure(list(points = c(17, 17, 2, 16, 11, 17, 20, 16, 19,
15, 9, 14, 14, 16, 13, 13, 22, 21, 25, 17, 17, 17, 20, 6, 11,
5, 10, 23, 21, 19, 11, 15, 13, 17, 17, 17, 9, 18, 12, 22, 21,
23, 8, 12, 6, 7, 22, 12, 21, 16, 12, 5, 19, 19, 21, 13, 12, 18,
22, 13, 21, 24, …
Run Code Online (Sandbox Code Playgroud) r ×7
tidyverse ×4
broom ×3
dplyr ×3
ggplot2 ×2
correlation ×1
loops ×1
packages ×1
purrr ×1
regression ×1