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