
我是相对较新的R,需要一些帮助,我的数据分析。在所附表格中,主蛋白加入栏包括在三种条件下,即对照(C)、脱水(D)和再水化(R)下皮层(C)增加或减少的蛋白质清单。每个条件有5个样品: CC(1,2,3,4和5),CD(1,2,3,4和5)和CR(1,2,3,4和5)。我需要做一个t检验,比较皮质控制(CC1,2,3,4和5)样品与皮质脱水(CD1,2,3,4和5)样品中的所有蛋白质。这样,当我运行代码时,第1行CC1值将根据第1行CD1值进行t测试,第2行CC1值将根据第2行CD1值进行t测试,依此类推。
我试过了
apply(allcor1, function(x){t.test(x[2:12],x[4:14], nchar)})但它给了我
错误在match.fun(乐趣):参数“乐趣”是缺少的,没有默认的
发布于 2021-03-25 12:58:33
您面临的挑战是数据太“宽”:当每个蛋白质至少有5个数据点时,您将其表示为一行。
如果你重塑这个问题,问题就会变得更容易。这里我将使用tidyr的枢轴函数以及提取。
library(dplyr)
library(tidyr)
# Removing the "sd" columns,
# and renaming first column to "protein" to be easier to work with
longer_data <- yourdata %>%
select(-starts_with("sd")) %>%
rename(protein = 1) %>%
# pivot all columns besides protein into one column condition_sample
pivot_longer(cols = c(-protein),
names_to = "condition_sample") %>%
# Split your CC1, CD2, etc into two columns after the second letter
separate(condition_sample, c("condition", "sample"), 2) %>%
# Make them wide again by condition
pivot_wider(names_from = condition, values_from = value)如果没有一个可重复的示例,我就无法进行测试,但这将为您提供一个包含protein、condition、sample (1-5)和value列的表。
在这一点上,数据更灵活地用于统计建模,如配对t检验。我在这里使用dplyr对CD进行CC分组t测试,并使用扫帚包对其进行整理。
library(broom)
longer_data %>%
group_by(protein) %>%
summarize(tidied_model = list(tidy(t.test(CC, CD, paired = TRUE)))) %>%
unnest(tidied_model)这将为每种蛋白质提供列estimate、statistic和p.value等(置信区间等)。
https://stackoverflow.com/questions/66767956
复制相似问题