【发布时间】:2020-08-25 16:09:09
【问题描述】:
我有一个如下所示的数据框:
colnames<-c('Assay','Sample','Interference','0','24','48','168')
Assay<-c('1','2','3','4','5','6','7','8','9')
Sample<-c('S1.16S','B2','B5','B32','B36','B39','B47','B57','A15')
Interference<-c('N','Y','N','N','N','Y','N','Y','Y')
'0'<-c(14.337,24.21,14.97,15.51,14.64,28.83,13.63,21.08,20.26)
'24'<-c(NA,25.13,14.99,15.35,14.71,28.64,13.68,22.04,20.64)
'48'<-c(NA,25.32,15.00,15.97,14.64,28.69,13.87,NA,22.14)
'168'<-c(NA,24.7,15.09,17.31,14.67,NA,14.9,23.22,21.56)
d<-data.frame(Assay, Sample, Interference, 0,24,48,168, check.names=FALSE)
当使用reshape包将数据熔解为长格式时,0、24、48、168列的值变为1-4,如下所示:
library(reshape)
dlong<-melt(d, id.vars=c('Assay','Sample','Interference'), measure.vars=c('0','24','48','168'))
dlong$variable<-as.numeric(dlong$variable)
head(dlong)
# Assay Sample Interference variable value
#1 1 S1.16S N 1 0
#2 2 B2 Y 1 0
#3 3 B5 N 1 0
#4 4 B32 N 1 0
#5 5 B36 N 1 0
#6 6 B39 Y 1 0
如何在“变量”列中保留数字值(0,24,48,168),而无需使用其他代码稍后转换它们?我需要对整个数据集运行下游相关性分析,这会导致我的处理时间相当滞后。
【问题讨论】:
-
stackoverflow.com/questions/26391921/… 在上一篇文章之后,我能够使用此代码
dlong$variable<-as.numeric(as.character(dlong$variable))解决问题