小编mel*_*bez的帖子

对 R 中的整洁数据同时执行多个 t.tests

我有一个如下所示的数据集:

id  samediff  factor  value
1   S         give    3
1   S         impact  4
2   S         give    2
2   S         impact  5   
3   D         give    1
3   D         impact  4
4   D         give    3
4   D         impact  5 
Run Code Online (Sandbox Code Playgroud)

我想执行几个 t.tests 来比较 S (samediff) 条件中每个因素的均值与 D (samediff) 条件中相同因素的均值。

我知道我可以通过以下方式做到这一点:

dfgive<-filter(df, factor == "give")
t.test(value~samediff, dfgive)

dfimpact<-filter(df, factor == "impact")
t.test(value~samediff, dfimpact) 
Run Code Online (Sandbox Code Playgroud)

有没有办法在更少的行中执行几个 t.tests?在实际数据集中,有比这里包含的更多的因素。我希望能够进行所有必要的 t.tests,而无需以我上面显示的相同方式创建单独的数据帧。

statistics r tidyr tidyverse

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

有条件地将 mutate_at 应用于 R 中数据帧中的特定行

我在 R 中有一个数据框,如下所示:

a  b  c  condition
1  4  2  acap
2  3  1  acap
2  4  3  acap
5  6  8  ncap
5  7  6  ncap
8  7  6  ncap
Run Code Online (Sandbox Code Playgroud)

我正在尝试重新编码 a、b 和 c 列中的值以用于条件 ncap(以及此处未显示的 2 个其他条件),同时单独保留 acap 的值。

以下代码适用于前 3 列。我试图弄清楚如何将它仅应用于我按条件指定的行,同时将所有内容保留在同一数据框中。

df = df %>%
     mutate_at(vars(a:c), function(x) 
     case_when x == 5 ~ 1, x == 6 ~ 2, x == 7 ~ 3, x == 8 ~ 4)
Run Code Online (Sandbox Code Playgroud)

这是预期的输出。

a  b  c  condition
1  4  2  acap …
Run Code Online (Sandbox Code Playgroud)

if-statement r conditional-statements dplyr tidyverse

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

错误:情况 1 (`.`) 必须是双面公式,而不是 `data.frame` 对象

我正在尝试创建一个单独的列,其中包含其他两列的最小值。当triad等于“triad_ah”时,我想获得以下两列的最小值。

我的数据如下所示:

triad         convince_animals  convince_health 
triad_ah      4                 5
not_triad_ah  2                 3
Run Code Online (Sandbox Code Playgroud)

这是我想要的输出:

triad         convince_animals  convince_health  convince_min
triad_ah      4                 5                4
not_triad_ah  2                 3                99
Run Code Online (Sandbox Code Playgroud)

我通过两种方式尝试过这一点。我认为使用 case_when 的方式可能会更简洁。我还包含了我收到的每个错误消息。

尝试1

dflong$convince_min <- dflong %>%
  case_when( 
    .$triad == "triad_ah" ~ min(.$convince_animals, .$convince_health), 
    .$triad == TRUE ~ 99
  )

Error: Case 1 (`.`) must be a two-sided formula, not a `data.frame` object.
Run Code Online (Sandbox Code Playgroud)

尝试2

dflong$convince_min <- dflong %>%
  ifelse(dflong$triad == "triad_ah", min(dflong$convince_animals, dflong$convince_health), 99)

Error in ifelse(., dflong$triad == "triad_ah", min(dflong$convince_animals, : unused argument (99) …
Run Code Online (Sandbox Code Playgroud)

if-statement r conditional-statements tidyverse

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

使用 ggbiplot 在 R 中可视化具有大量变量的 PCA

我正在尝试可视化包含 87 个变量的 PCA。

prc <-prcomp(df[,1:87], center = TRUE, scale. = TRUE)
ggbiplot(prc, labels = rownames(df[,1:87]), var.axes = TRUE)
Run Code Online (Sandbox Code Playgroud)

当我创建双图时,许多向量相互重叠,导致无法读取标签。我想知道是否有什么方法可以一次只显示一些标签。例如,我认为如果我可以创建几个单独的双图,每个双图仅显示向量上标签的子集,那将会很有用。

这个问题似乎密切相关,但我不知道它是否转换为最新版本的ggbiplot。我也不知道如何修改原来的功能。

r data-visualization ggplot2 ggbiplot biplot

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

使用 tidyverse 下载 rlang 时遇到问题

我最近安装了 tidyverse。但是,我在调用它时收到以下错误消息。

\n\n
> library(tidyverse)\nError: package or namespace load failed for \xe2\x80\x98tidyverse\xe2\x80\x99 in loadNamespace(i, \nc(lib.loc, .libPaths()), versionCheck = vI[[i]]):\n there is no package called \xe2\x80\x98rlang\xe2\x80\x99\nIn addition: Warning message:\npackage \xe2\x80\x98tidyverse\xe2\x80\x99 was built under R version 3.4.4 \n
Run Code Online (Sandbox Code Playgroud)\n\n

不知道为什么rlang没有下载。我试图通过单独下载 rlang 来解决这个问题。在此之前,我进入我的文件并删除了已经存在的 rlang 版本。尽管如此,我还是收到了以下消息:

\n\n
> install.packages("rlang")\nInstalling package into \xe2\x80\x98C:/Users/mbesw/Documents/R/win-library/3.4\xe2\x80\x99\n(as \xe2\x80\x98lib\xe2\x80\x99 is unspecified)\ntrying URL \'https://cran.rstudio.com/bin/windows/contrib/3.4/rlang_0.2.0.zip\'\nContent type \'application/zip\' length 817350 bytes (798 KB)\ndownloaded 798 KB\n\npackage \xe2\x80\x98rlang\xe2\x80\x99 successfully unpacked and MD5 sums checked\nWarning in install.packages :\n  cannot remove prior installation of package \xe2\x80\x98rlang\xe2\x80\x99\n\nThe downloaded …
Run Code Online (Sandbox Code Playgroud)

r tidyverse rlang

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