[问题] lm()与资料输出

楼主: w2a3n4g5 (MORRIS.W)   2014-09-22 14:25:36
- 问题: 当你想要问问题时,请使用这个类别
[问题类型]:
程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
[软件熟悉度]:
入门(写过其他程式,只是对语法不熟悉)
[问题叙述]:
大家好我又来问问题了QQ
目前遇到的问题如下
先读入资料档 , 再透过commandline给定参数去决定自变量 ,应变量的位置
程式码大略如下
read.table(data,"路径")
y <- data[[k1]]
x1 <- data[[k2]]
x2 <- data[[k3]]
y:应变量 , x1 , x2 皆为连续型自变量 , 不须转换成分类变量
其中k1,k2,k3行的名称分别为 weigh , A ,B
output <- lm(y ~ x1 + x2,data)
summary(output)
则会出现下列结果
Estimate Std. Error t value Pr(>|t|)
(Intercept) 26.23730 5.93517 4.421 1.08e-05 ***
data[, k2] 0.01520 0.01138 1.336 0.1819
data[, k3] -0.90883 8.18376 -0.111 0.9116
但我希望summary后的结果像这样
Estimate Std. Error t value Pr(>|t|)
(Intercept) 26.23730 5.93517 4.421 1.08e-05 ***
A 0.01520 0.01138 1.336 0.1819
B -0.90883 8.18376 -0.111 0.9116
就是如同 lm (weigh ~ A+B , data=data)的效果
请问我再 lm() 中 该怎么写呢?
已经试过很多方式例如 names(data)[k1] 之类的方式lm当中 , 但还是失败了
也看过help(lm)了 ,不太了解内部放的y~x属于何种型态
因为档案是从外不读入所以行的名称不固定不能写死QQ
第二个问题是 , 假设我将档案输出了 , 程式码大略如下
write.table(summary(output),"路径")
假设输出的是txt档 , 前面都会有数字1,2...... 就像下面那样
"x"
"1" ""
"2" "Call:"
"3" "lm(formula = data[, f] ~ data[, c1] + data[, c2] + data[, c3], "
"4" " data = data
请问是否有办法再输出时去除掉那些数字呢?
谢谢各位QQ
作者: koai (可笑的自以为...)   2014-09-22 14:37:00
Q1有两种做法, 1. output <- lm(y~x1+x2), 不用assign data否则用names(data)改变量名后,不需再令 x1 <- data[[k2]]...直接 names(data) <- c("weight","A","B"), 然后output <- summary(lm(weight~A+B,data)) 即可
作者: gsuper (Logit(odds))   2014-09-22 19:48:00
write.csv(x,"x.csv",row.names=FALSE,quote=FALSE)
楼主: w2a3n4g5 (MORRIS.W)   2014-09-23 02:32:00
不好意思可能是一开始没说清楚由于读的档案都不同 , 所以可能没办法用c("weight","A")这种方式来写,另外我试过用lm(y~x1+x2)了summary的变量名称会变成x1,x2 而我要的是AB即原档案的变量名称QQ , 不好意思一开始没解释清楚另外Q2解决了 , 谢谢G大!!!!
作者: koai (可笑的自以为...)   2014-09-23 08:41:00
在你的程式中,用A丶B取代x1丶x2即可呀…
楼主: w2a3n4g5 (MORRIS.W)   2014-09-23 11:40:00
A,B 只是假设的变量名称 , 实际上我不知道读到的档案的名称 , 比较像是让他人上传想做计算的文件 , 我在将结果输出

Links booklink

Contact Us: admin [ a t ] ucptt.com