Error in svd(x, nu = 0, nv = k) : infinite or missing values in 'x'

मैं prcomp() का उपयोग कर रहा हूं और मुझे यह त्रुटि संदेश मिला है। मैंने एक रेप्रेक्स करने की कोशिश की लेकिन त्रुटि को पुन: उत्पन्न नहीं कर सका। मैंने कोशिश की:

df[is.na(df)] <- 0##NA values to 0
df <-df[which(rowSums(df) > 0),]##rm rows with only zeros
df <- df[, colSums(df != 0) > 0]##rm cols with only zeros

df एक data.frame है, जो एक list है और numeric नहीं है। मेरे पास विचार खत्म हो गए हैं! मैं और क्या कोशिश कर सकता था?

0
takeITeasy 16 जुलाई 2020, 18:02

1 उत्तर

सबसे बढ़िया उत्तर

जबकि इसमें से अधिकांश सही दिखता है, एक चीज जो यहां मदद कर सकती है, वह यह है कि आप शून्य-स्तंभों की जांच कैसे करते हैं। इस मामले में length(unique(x)) या संभवतः बेहतर var(x) < 10^-13 की जांच करना बेहतर है (X लगभग भिन्न नहीं है, इसलिए इसका लगभग केवल 1 मान है)।

df[is.na(df)] <- 0
infs <- apply(df, 2, is.infinite)
rowswithinf <- rowsums(infs) > 0
#df[infs]  #handle infinite rows
#df[rowswithinf, ]  #Handle infinite rows
df <- df[!rowswithinf, ]

# Handle columns that almost only have 1 value:
nzv <- sapply(df, var) < 10^-13
df <- df[, !nzv]
prcomp(df)
0
Oliver 16 जुलाई 2020, 15:26