簡體   English   中英

無法將R2中的Chi-Squared值轉換為數值列

[英]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

一些額外的信息:用於查看對象的其他有用命令包括strattributes

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM