我使用R,当我尝试运行以下代码时:
f = scan(file="c:\\myfile.txt", sep=' ', what=list('numeric'))
MY_MATRIX.M = matrix(f, ncol = 4, byrow = TRUE)
Var.names = c('column1','column2', 'column3', 'column4')
colnames(MY_MATRIX.M) = Var.names
TEST = data.frame(MY_MATRIX.M)
t1 = TEST[which(TEST[,4] == 0, arr.ind = TRUE),]
t2 = TEST[which(TEST[,4] == 1, arr.ind = TRUE),]
我有以下错误:
Error in which(TEST[,4] == 0, arr.ind = TRUE :
(list) object cannot be coerced to type 'double'
我的文件有4列,由数组组成。 任何人都可以帮我解决问题吗?
答案 0 :(得分:8)
您遇到的问题是由what=list(numeric)
参数引起的。您想告诉R
该文件只有numeric
个值,不它包含带有数字元素的列表。所以只需使用what=numeric
,或者根本不使用what
。
我不经常导入文本文件,但是当我这样做时,我更喜欢read
。