lqkybs
运行下列命令,出现错误:
> file<-read.table("wage.txt",header=TRUE,as.is = TRUE)
> X<-file[,c(1,2)]
> Y<-file[,3]
> Coefficients<-solve(t(X)%*%X)%*%t(X)%*%Y
Error in t(X) %*% X : requires numeric matrix/vector arguments
>
然后试图将矩阵转换成数值型,以进行下一步的数值运算,但又出现错误:
> as.numeric(X)
Error: (list) object cannot be coerced to 'double'
不知道问题出在哪?请高手指点!
把上述“wage.txt”文件转换成“aa.R”文件,其中第一行是列名称,其余是数字。
想用source函数读数据,但出现错误,如下:
> source("D:\\Program Files\\R-2.6.1\\myProgram\\aa.R")
Error in source("D:\\Program Files\\R-2.6.1\\myProgram\\aa.R") :
D:\Program Files\R-2.6.1\myProgram\aa.R: unexpected symbol at
1: const age
>
上述错误又是什么原因呢?谢谢!
neige
what does the as.is=TRUE do?
rtist
the output of read.table is a data frame, which looks like a matrix, but far from a matrix.
X=as.matrix(X) and Y=as.matrix(Y) or sth alike should work.
BTW: for you problem, qr decomposition is much more stable to get solutions.
yihui
嗯,直观上来看Linear Model的系数用R写出来就是solve(t(x)%*%x)%*%x%*%y,但如rtist所说,实际上并不是用这么直白的方式算的,而是用QR分解。
楼主的问题很明显了,wage.txt中含有字符。
另外,你似乎没搞清楚source()究竟是干什么的(不是用来读数据的!)。
to neige:as.is参数用来控制是否将字符数据转化为factor类型。
lqkybs
谢谢各位!
to rist:用X=as.matrix(X) and Y=as.matrix(Y)命令,同样出现"Error in t(X) %*% X : requires numeric matrix/vector arguments"的错误.
to 谢益辉:"wage.txt"文件中只有第一行含有字符,它代表各列的名称,因此使用“header=TRUE”。其余各行都是数字,是一个128*3的矩阵,没有缺失值。
问题出在哪儿呢?
你们是如何在R中导入矩阵数据进行矩阵运算的呢?
我尝试过将“.txt”数据转换成“.csv”格式,然后用“read.csv”函数读取,这样可以进行矩阵运算。但是".csv"格式的要求有时候不太方便。
数据输入输出的问题困饶我很多天了,自我感觉R语言的输入输出比较严格,不太灵活,有没有关于数据输入输出比较详细的书或资料呢?
再次谢谢各位了!!
lqkybs
谢谢各位!
to rist:用X=as.matrix(X) and Y=as.matrix(Y)命令,同样出现"Error in t(X) %*% X : requires numeric matrix/vector arguments"的错误.
to 谢益辉:"wage.txt"文件中只有第一行含有字符,它代表各列的名称,因此使用“header=TRUE”。其余各行都是数字,是一个128*3的矩阵,没有缺失值。
问题出在哪儿呢?
你们是如何在R中导入矩阵数据进行矩阵运算的呢?
我尝试过将“.txt”数据转换成“.csv”格式,然后用“read.csv”函数读取,这样可以进行矩阵运算。但是".csv"格式的要求有时候不太方便。
数据输入输出的问题困饶我很多天了,自我感觉R语言的输入输出比较严格,不太灵活,有没有关于数据输入输出比较详细的书或资料呢?
再次谢谢各位了!!
rtist
you can try as.numeric(as.matrix()).
next time, give a reproducible example.
lqkybs
谢谢rtist,是个不错的办法
rtist
[quote]引用第7楼lqkybs于2007-12-20 07:49发表的“”:
谢谢rtist,是个不错的办法 [/quote]
probably not as good as you believe...
yihui
其实报告一下str(X)大家就知道怎么回事了。