小编Syl*_*uez的帖子

data.frame、tibble和matrix之间有什么区别?

在 R 中,某些函数仅适用于 a data.frame,而其他函数仅适用于 atibble或 a matrix

使用as.data.frame或转换我的数据as.matrix通常可以解决这个问题,但我想知道这三者有何不同?

r matrix dataframe tibble

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

R boxplot,使用“stat_compare_means”更改p值中的位数

使用 ToothGrowth 数据集(内置于 R 中),我使用了以下代码。

library(ggplot2)
library(tidyverse)
library(ggpubr)
p <- ggboxplot(ToothGrowth, x = "supp", y = "len",
           color = "supp", palette = "jco",
           add = "jitter",
           facet.by = "dose", short.panel.labs = FALSE)
p + stat_compare_means(label = "p.format")
Run Code Online (Sandbox Code Playgroud)

现在,我希望 p 值有 4 位数字。我研究了以前的类似帖子,然后尝试了以下两个选项

p + stat_compare_means(label = "p.format", digits = 4)
p + stat_compare_means(label = "p.format", round(p.format, 4))
Run Code Online (Sandbox Code Playgroud)

不幸的是,两者都不起作用。可能有人有解决方案吗?谢谢你。

r boxplot p-value

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

如何“反向融化”一个data.frame?

我有data.frame df1(见下面的代码)。我想把它转换成什么df2样子(见下面的代码)。

也许这可以用reshape cast或来完成reverse melt?但我不明白这些功能。请问有人可以帮忙吗?

 df1 <- data.frame(
   stringsAsFactors = FALSE,
                    sample = c("a","a","a",
                               "a","b","c","c","c","c","c","c","c","c",
                               "d","d","e","e","e","g","g"),
                    LETTER = c("P","R","V",
                               "Y","Q","Q","R","S","T","U","W","X","Z",
                               "Q","X","Q","V","X","Q","T")
        )

 df2 <- data.frame(
   stringsAsFactors = FALSE,
             sample = c("a", "b", "c", "d", "e", "f", "g"),
                  P = c(1L, 0L, 0L, 0L, 0L, 0L, 0L),
                  Q = c(0L, 1L, 1L, 1L, 1L, 0L, 1L),
                  R = c(1L, 0L, 1L, 0L, 0L, 0L, 0L),
                  S = c(0L, 0L, 1L, 0L, 0L, 0L, …
Run Code Online (Sandbox Code Playgroud)

casting r reshape dataframe melt

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

在 R 中的另一个 data.frame 中按权重乘以每列的值

我有两个data.framesdfweights(下面的代码)。

df 看起来像这样:

    id             a           b           d           EE           f
 1  this           0.23421153  -0.02324956 0.5457353   0.73068586   0.5642554
 2  is             0.28378641  0.36346241  1.0190496   1.97715019   -1.190179
 3  an             -0.04372133  0.07412557  -0.4510299  1.8442713   -0.5301328
 4  example        -0.18139887  0.10404329  -1.0871962  1.46920108  0.4685703
 5  data.frame     0.24235498   -0.1501064  -1.1183967  0.22884407  0.4272259
 6  for             -0.72718239 0.16337997  1.2635683   0.44206945  0.7303647
 7  stackoverflow  0.25203942   -0.1772715  -0.3371532  -0.29167792 -0.7065494
 8  please         -0.11047364  -0.06631552 0.4342659   -1.49584522 0.2837016
 9  help           -0.1136639   0.22414253  0.4284864   1.59096047  0.2915938
 10 me …
Run Code Online (Sandbox Code Playgroud)

r multiplication multiple-columns dataframe

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

更改 data.frame 中的单行名称

如果这是一个重复的问题,我提前道歉。

如何更改data.frameR中a中单行的名称?例如,在mtcars数据集中,如何重命名行Merc 280并调用它Some Mercedes

所有其他帖子似乎都回答了如何一次替换所有行名称。

谢谢你。

row r rename dataframe rowname

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

R中向量的最大长度只有349?

我想在 R 中使用一个非常长的向量,但似乎当我创建一个向量时,向量中的最大长度/值的数量是 349。请参阅下面的vector1和代码vector2。我可以vector1毫无问题地创建 349 个值,但是vector2包含 350 个值的 会+在下一行抛出异常,就好像我忘记使用结束符"或一样)

我读过这篇文章: Max Length for a Vector in R,但这与我的经验完全不同。

我错过了什么吗?有人可以帮忙吗?

代码

 vector1 <- c("value1", "value2", "value3", "value4", "value5", "value6", "value7", "value8", "value9", "value10", "value11", "value12", "value13", "value14", "value15", "value16", "value17", "value18", "value19", "value20", "value21", "value22", "value23", "value24", "value25", "value26", "value27", "value28", "value29", "value30", "value31", "value32", "value33", "value34", "value35", "value36", "value37", "value38", "value39", "value40", "value41", "value42", "value43", "value44", …
Run Code Online (Sandbox Code Playgroud)

r vector variable-length

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

对列名以特定字符串 (R) 结尾的列中的行求和

我正在使用以下代码,它计算每个子组的 z 分数。我想在最后添加一列,对 z 分数进行求和,从而对以“_zscore”结尾的所有列中的所有值进行逐行求和。我如何具体选择这些列?

(请注意,我的真实数据有更多列,因此我希望在列名称中专门选择“_zscore”。)

 library(dplyr)
 set.seed(12345)
 df1 = data.frame(a=c(rep("a",8), rep("b",5), rep("c",7), rep("d",10)), 
      b=rnorm(30, 6, 2), 
      c=rnorm(30, 12, 3.5), 
      d=rnorm(30, 8, 3)
      )
 df1_z <- df1 %>%
   group_by(a) %>%
   mutate(across(b:d, list(zscore = ~as.numeric(scale(.)))))
Run Code Online (Sandbox Code Playgroud)

r sum rows multiple-columns dataframe

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

用R的数据框中的星星替换p值

我有一个data.frame dfP与一列Spearman_p包含的p值(数字数据)。我想用它们代替p值摘要星号。我使用以下代码:

 dfP$Spearman_p[dfP$Spearman_p < 0.0001] <- "****"
 dfP$Spearman_p[dfP$Spearman_p < 0.001] <- "***"
 dfP$Spearman_p[dfP$Spearman_p < 0.01] <- "**"
 dfP$Spearman_p[dfP$Spearman_p < 0.05] <- "*"
 dfP$Spearman_p[dfP$Spearman_p > 0.05] <- "ns"
Run Code Online (Sandbox Code Playgroud)

但是,这会将所有 <0.05的p值(<0.01的那些)也更改为*(一星)。

我怀疑R在后续步骤中将****视为数字<0.05。那是对的吗?如果是这样,请问我该如何规避?

谢谢。

r substitution dataframe p-value

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

R dplyr 子集缺少列

我有以下代码,并且想将列选择到新的data.frame.

library(dplyr)
df = data.frame(
    Manhattan=c(1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0), 
    Brooklyn=c(0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0), 
    The_Bronx=c(1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0), 
    Staten_Island=c(0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, …
Run Code Online (Sandbox Code Playgroud)

r subset dataframe dplyr

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