我为R生存包组织了数据,但是想要将它导出到Graphpad Prism中,它使用不同的结构。
#Example data
Treatment<-c("A","A","A","A","A","B","B","B","B","B")
Time<-c(3,4,5,5,5,1,2,2,3,5)
Status<-c(1,1,0,0,0,1,1,1,1,1)
df<-data.frame(Treatment,Time,Status)
R生存包数据结构如下所示
Treatment Time Status
A 3 1
A 4 1
A 5 0
A 5 0
A 5 0
B 1 1
B 2 1
B 2 1
B 3 1
B 5 1
我需要的输出将每个处理组织为一列,然后按时间排序。然后根据其状态将每个人记录为1或0。输出应如下所示:
Time A B
1 1
2 1
2 1
3 1 1
4 1
5 0 1
5 0
5 0
dcast()做了类似于我想要的事情,但是它总结了Status值并将它们合并到一个单元格中,用于具有匹配时间值的所有个体。
感谢您的帮助!
答案 0 :(得分:0)
在尝试将Sotos的代码实现到我的实际数据时遇到了一个奇怪的问题。我收到了错误:
Error in Math.factor(var) : ‘abs’ not meaningful for factors
这很奇怪,因为Sotos的代码适用于这个例子。当我使用sapply()检查示例数据框时,它给了我结果:
> sapply(df,class)
Treatment Time Status
"factor" "numeric" "numeric"
就我所知,我的问题是我的Status变量在我的示例中被读为数字,但在我的实际数据中是一个整数:
> sapply(df,class)
Treatment Time Status
"factor" "numeric" "integer"
我从.csv加载了我的数据,所以也许这就是变量调用的变化。我最后使用as.numeric()更改了我的Status变量,然后重新生成数据帧。
Status<-as.numeric(df$Status)
df<-data.frame(Treatment, Time, Status)
并且能够将Sotos的代码应用于新的数据帧。