R 按列值分隔数据集

R 按列值分隔数据集,r,dataframe,R,Dataframe,大家好,我正在玩R中的豚鼠数据集,以便更熟练地操作R中的数据集。如果您不熟悉,下面的链接将对数据集进行更详细的解释。但本质上,通过橙汁或药丸给豚鼠服用维生素c对牙齿生长长度的影响是显而易见的。我想它是随Tidyverse套装而来的,但它可能是一份带R的礼物,从一开始就不确定 运行上面的命令应该会显示一个包含三列len、supp和dose的数据帧。我认为这种设置方式不利于绘图,是一种显示数据的糟糕方式。我们对通过两种不同方法产生的剂量效应非常感兴趣。因此,我们应该通过“OJ”和“VC”的supp

大家好,我正在玩R中的豚鼠数据集,以便更熟练地操作R中的数据集。如果您不熟悉,下面的链接将对数据集进行更详细的解释。但本质上,通过橙汁或药丸给豚鼠服用维生素c对牙齿生长长度的影响是显而易见的。我想它是随Tidyverse套装而来的,但它可能是一份带R的礼物,从一开始就不确定

运行上面的命令应该会显示一个包含三列len、supp和dose的数据帧。我认为这种设置方式不利于绘图,是一种显示数据的糟糕方式。我们对通过两种不同方法产生的剂量效应非常感兴趣。因此,我们应该通过“OJ”和“VC”的supp列值(分别为橙汁和维生素c)将数据分离为两个数据框,然后沿其剂量列合并它们,因为它们在3个剂量范围0.5、1和2中共享10个长度测量值

总之,原始数据是由3列组成的60个长度条目,其中一列包含“OJ”和“VC”两种供应方法,第三列为三种剂量条件。我想创建一个新的数据框架,包含3列dose、OJ和VC,其中OJ和VC包含来自gpt的len条目。所以看起来像这样

dose VC OJ
1   4.2   4.2  16.5
2  11.5   7.3  9.4
3   7.3   11.5  9.7

因此,为了做到这一点,我想使用xtabs和merge,但不知道如何完成第一步。我在下面尝试了,但它只是对我想要单独显示的值求和。对于我正在尝试做的事情,xtabs是一种糟糕的方法吗

> xtabs(~supp,data=gpt)
supp
OJ VC 
30 30 

我将挑战您最初的假设,即需要对数据进行重塑,以生成一个曲线图,通过这两种方法说明剂量的影响。听起来,在
ggplot2
中使用组和镶嵌面可以满足您的需求。例如:


library(ggplot2)

ggplot(gpt) + facet_wrap(~ supp) + 
geom_boxplot(aes(x = factor(dose), y = len, group = dose)) + 
labs(x = "Dose", y = "Len")



你似乎想做的是重塑。这在这里没有意义,因为行应该是您的观察值。如果按照您的建议重新塑造数据,那么您会将同一行中两个主题的数据配对。
> xtabs(len~supp,data=gpt)
supp
   OJ    VC 
619.9 508.9 

library(ggplot2)

ggplot(gpt) + facet_wrap(~ supp) + 
geom_boxplot(aes(x = factor(dose), y = len, group = dose)) + 
labs(x = "Dose", y = "Len")