R- prcomp() 'x' 中的无限值或缺失值
R- infinite or missing values in 'x' for prcomp()
Error in svd(x, nu = 0, nv = k) : infinite or missing values in 'x'
我正在使用 prcomp()
并收到此错误消息。我试图做一个 reprex 但无法重现错误。我试过了:
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
。我 运行 没主意了!我还能尝试什么?
虽然大部分内容看起来都不错,但可能对这里有所帮助的一件事是更改检查零列的方式。在这件事上,最好检查 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)
Error in svd(x, nu = 0, nv = k) : infinite or missing values in 'x'
我正在使用 prcomp()
并收到此错误消息。我试图做一个 reprex 但无法重现错误。我试过了:
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
。我 运行 没主意了!我还能尝试什么?
虽然大部分内容看起来都不错,但可能对这里有所帮助的一件事是更改检查零列的方式。在这件事上,最好检查 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)