0

所以我是 R 新手 - 如果我因无知而犯了明显的错误,请原谅我。

我正在尝试进行对应分析。我已经使用read.csv(). 然后我正在使用corresp()从 MASS 包中使用。一切正常。

然后我返回 CSV 文件(从 Excel 导出)并删除行(我想从分析中排除的样本),然后重复read.csv()corresp()步骤,但现在我收到以下错误:

Error in corresp.matrix(as.matrix(x), ...) : empty row or column in table
In addition: Warning message:
In corresp.matrix(as.matrix(x), ...) :
  negative or non-integer entries in table

“附加”错误不是问题,并且总是在执行时弹出corresp()“附加”错误不是问题,并且在处理非整数第一行是问题的根源,声称行/列是空的。

我逐行检查了 CSV,绝对没有空单元格(A1 除外 - 就像第一个成功的 CSV 一样)。事实上,新的 CSV(删除了一些行)与正常工作的文件几乎相同corresp()

如果有人有解释或可以提出一种继续进行的方法,那将是一个巨大的帮助。

4

1 回答 1

2

为了从原始 .csv 文件中删除一些行(或样本),您可以在 R 中轻松完成,并且由于您已经阅读了该文件,因此您应该不会收到任何错误。

第一步是读取您的原​​始 .csv 文件:

# set the header TRUE if you have any header in your .csv file.
data = read.csv(file = "", header = TRUE) 

现在假设您要删除第 3、5、10 和 20 行:

data1 = data[-(c(3, 5, 10, 20)),]

然后,您可以轻松地将 data.new 数据框用作新数据集。

您应该注意,为了使用 corresp(),您的数据集中应该有整数列和非负列。与上面的代码类似,您还可以选择数据集的某些列。例如,为了仅选择数据集的第 3、4 和 6 列(假设这些列是唯一的非负整数),您可以说:

data2 = data[,c(3, 4, 5)]

希望能帮助到你。

于 2012-07-03T13:42:41.823 回答