我在对数据进行子集化时正确计算存在问题。但是最初我从文件中提取一些信息到另一个。然后,我尝试计算每个器官的患者数量。之前正常工作的命令现在给我一个错误。它没有显示任何错误 - 只是错误地计算了这些值。
输入文件位于以下链接中:https://www.dropbox.com/sh/8bo4b4dpmydj19w/AADZ7WuoecrjPwm_qyF8NRMza?dl=0
这是我的命令行。
Clinical_Samples_map = read.xls("b.xlsx") # calling my file
Clinical_Samples_Original = read.xls("a.xlsx", sheet=1) # the file where I get additional information
Clinical_Samples_map$AnatomicLocation = Clinical_Samples_Original[match(Clinical_Samples_map$SampleID, Clinical_Samples_Original$TubeName),"AnatomicLocation"]
map<-Clinical_Samples_map # Just changing the name
# Anatomic Location
sub_map_AnatomicLocation <- map[!duplicated(map$patient_number), ] # Excluding the duplicate of patient by checking patient_number column
sub_map_AnatomicLocation <- data.frame(sub_map_AnatomicLocation)
sub_map_AnatomicLocation_patient <- subset(sub_map_AnatomicLocation, Disease != "Unknown" & AnatomicLocation != "Unknown") # Getting rid of "Unknown" value if there is any
AnatomicLocation_patient <- count_(sub_map_AnatomicLocation , c("Disease","AnatomicLocation"))
write.table(AnatomicLocation_patient, "AnatomicLocation_patient.txt",col.names = TRUE)
write.table(Clinical_Samples_map, "Clinical_Samples_map2.txt",col.names = TRUE)
然而,当我比较两个写的txt文件时,我有不同的数字。有谁知道为什么会这样?例如,如果您查看CD回肠数字,它会显示3名患者,但是当我查看Clinical_Samples_map2.txt时,我可以算上4名。
其他的事情,如果我尝试用ggplot生成一些图:
ggplot(data=Clinical_Samples_map, aes(x=Disease, y=AgeAtSampling, fill=Disease)) +
geom_boxplot(notch = TRUE) +
ggtitle("Clinical_Samples_map_Disease") +
scale_y_continuous(name = "Age at Sampling", breaks = seq(0, 80, 20), limits=c(0, 80)) +
scale_x_discrete(name = "Disease") +
geom_jitter(colour = "black", size = 2, width = 0.15, height = 0.3) +
theme(legend.position = "bottom") +
labs(fill = "Disease") +
theme(axis.title=element_text(face="plain", size="30", color="black",family = "Gill Sans MT"),
axis.text.x = element_text(colour="grey20",size=20,angle=45,hjust=.5,vjust=.5,face="plain"),
axis.text.y = element_text(colour="grey20",size=20,angle=0,hjust=1,vjust=0,face="plain"),
legend.text=element_text(face="plain", size="30", color="black"),
legend.title=element_text(face="plain", size="30", color="black"))
我收到了一个错误:
错误:提供给连续刻度的离散值
我认为这是问题所在。我可以克服这个来生成情节,但我无法弄清楚为什么计算错误?
有人可以帮忙解决这个问题吗?我挣扎了这么久,还想不通。
非常感谢。
Bahti
答案 0 :(得分:0)
我想我明白了。因为我从未遇到过这个问题,所以我从没想过。我只需要将某些列改为字符
map[] <- lapply(map, as.character)
我首先使用了这个,并使用了我使用的特定列
map_AnatomicLocation $ AgeAtSampling = as.numeric(levels(map_AnatomicLocation $ AgeAtSampling))[map_AnatomicLocation $ AgeAtSampling]#如果离散值存在问题
然后它允许我绘制和计算。