Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何将2个TIBLE连接到一个数据帧中?_R_Dplyr_Purrr_Stringr - Fatal编程技术网

R 如何将2个TIBLE连接到一个数据帧中?

R 如何将2个TIBLE连接到一个数据帧中?,r,dplyr,purrr,stringr,R,Dplyr,Purrr,Stringr,我有一个如下所示的数据集,并编写了一组R代码来执行两个主要功能:在所有参数上,为我的每种治疗方法提供覆盖控制的折叠变化;给我所有参数中所有对照处理的p值。这通过Summary功能生成了2个TIBLES。折叠变化TIBLE为12x5,p.值TIBLE为10x5 我需要做两件事: 1.将两行从折叠更改选项卡上拆下,使其成为10x5 2.现在要绑定两个tibble,请将两个10x5绑定在一起 我试着从折叠变化表中筛选出我的2种对照疗法,然后将它们结合在一起,但我不断地出错 这是数据,所有数据都已平均

我有一个如下所示的数据集,并编写了一组R代码来执行两个主要功能:在所有参数上,为我的每种治疗方法提供覆盖控制的折叠变化;给我所有参数中所有对照处理的p值。这通过Summary功能生成了2个TIBLES。折叠变化TIBLE为12x5,p.值TIBLE为10x5

我需要做两件事: 1.将两行从折叠更改选项卡上拆下,使其成为10x5 2.现在要绑定两个tibble,请将两个10x5绑定在一起

我试着从折叠变化表中筛选出我的2种对照疗法,然后将它们结合在一起,但我不断地出错

这是数据,所有数据都已平均

 chemistry  rate Digital biomass[mm^3] greenness average[] Height [mm]
1    Control     0             135484.07           0.2167113    86.27765
2    Flavone 0.001             135090.45           0.2025817    81.21167
3    Flavone  0.01             144547.00           0.2078100    82.85367
4    Flavone   0.1             145807.70           0.2043300    84.96300
5    Flavone     1             110408.18           0.1949033    81.48700
6    Flavone    10              53585.55           0.1850100    69.78533
7      SA3F2 0.001             158966.67           0.2051417    85.33000
8      SA3F2  0.01             167762.00           0.2113683    88.58500
9      SA3F2   0.1             159897.50           0.2021017    86.60617
10     SA3F2     1             181713.50           0.1995667    85.57567
11     SA3F2    10             136530.00           0.1964467    81.84200
以下是计算折叠变化的代码:

  fold.change <- cleaned.averagedreps.nona %>%
    group_by(chemistry) %>%
    mutate_at(vars(3:5), ~./.[rate == '0']) 
下面是计算p值的代码。这是在与上面所示类似的数据集中完成的,但是需要重复,以便t.test可以计算

#add colums for p values
  #remove NA
cleaned.repdata.nona <- na.omit(cleaned.repdata)
  #seperate control
control <- cleaned.repdata.nona %>%
  filter(cleaned.repdata.nona$rate == "0")

  #process p values
broad.pvalues <- cleaned.repdata.nona %>%
  group_by(chemistry, rate) %>%
  filter(chemistry != "Control") %>%
  summarise("biomass.p" = t.test(`Digital biomass[mm^3]`, control$`Digital biomass[mm^3]`)$p.value,
            "greenness.p" = t.test(`greenness average[]`, control$`greenness average[]`)$p.value,
            "height.p" = t.test(`Height [mm]`, control$`Height [mm]`)$p.value)
下面是我写的将我的两个Tibble粘在一起的内容以及出现的错误:

#make both dataframes the same size (i.e. remove control rows in fold change)
> fold.change <- filter_at(fold.change, all.vars(!(fold.change$rate == "Control")))
Error: `.predicate` has no matching columns
Call `rlang::last_error()` to see a backtrace
> final <- cbind(fold.change, broad.pvalues)
Error: Argument 2 must be length 12, not 10
如果你们有什么解决办法,请告诉我。我希望把这个tibble转换成df,这样它就不那么挑剔,更容易输出

谢谢

应该是all_vars,而不是all.vars,而且应该在vars中指定列名

如果只有一列,只需使用过滤器

使用mtcars的可复制示例

返回一行中“mpg”、“drat”、“wt”的所有值均大于3的行

library(dplyr)
filter_at(fold.change, vars(rate), all_vars(!(. == "Control")))
fold.change %>%
         filter(rate != 'Control')
mtcars %>%
       filter_at(vars(mpg, drat, wt), all_vars(. > 3))