[英]Unable to Convert Chi-Squared Values into a Numeric Column in R
我一直在為一個家庭作業分配一個項目,而現在我在后勤問題上停留了一段時間。
我目前所擁有的是一個以以下格式返回10000個值的列表:
[[10000]]
X-squared
0.1867083
(這是列表的第10000個值)
我真正想要的是僅使用卡方值,以便執行諸如創建值的直方圖之類的操作。
有什么辦法可以做到嗎? 如有必要,我可以從頭開始重復測試。
我當前的代碼是:
nsims = 10000
for (i in 1:nsims) {cancer.cells <- c(rep("M",24),rep("B",13))
malig[i] <- sum(sample(cancer.cells,21)=="M")}
benign = 21 - malig
rbenign = 13 - benign
rmalig = 24 - malig
for (i in 1:nsims) {test = cbind(c(rbenign[i],benign[i]),c(rmalig[i],malig[i]))
cancerchi[i] = chisq.test(test,correct=FALSE) }
它提供了我所需要的一切,但是我無法對其進行后續分析,例如創建直方圖。
感謝您抽時間閱讀!
我會根據@Dr的建議提供答案。 麥克風。
hist
需要向量作為輸入。 hist(cancerchi)
不起作用的原因是因為cancerchi
是列表,而不是載體。
有幾種方法可以將cancerchi
從列表轉換為hist
可以使用的格式。 這是3種方式:
hist(as.data.frame(unlist(cancerchi)))
請注意,如果您不重新分配cancerchi
,它將仍然是列表,並且不能直接傳遞給hist
。
# i.e
class(cancerchi)
hist(cancerchi) # will still give you an error
如果您重新分配,它可能是另一種對象:
(class(cancerchi2 <- unlist(cancerchi)))
(class(cancerchi3 <- as.data.frame(unlist(cancerchi))))
# using the ldply function in the plyr package
library(plyr)
(class(cancerchi4 <- ldply(cancerchi)))
這些新對象可以直接傳遞給hist
hist(cancerchi2)
hist(cancerchi3[,1]) # specify column because cancerchi3 is a data frame, not a vector
hist(cancerchi4[,1]) # specify column because cancerchi4 is a data frame, not a vector
一些額外的信息:用於查看對象的其他有用命令包括str
和attributes
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.