R에서 csv 파일 읽는 법
R은 read.csv() 함수를 기본으로 제공합니다. 그러나 여러분이 이 함수를 쓰면 안되는 몇 가지 이유가 있습니다. 우선 느립니다! 다른 이유는 아실 필요 없겠습니다. 느립니다!!! 대안으로 readr 패키지의 read_csv() 함수를 추천합니다. 그런데, 이 함수는 기본적으로 UTF-8 인코딩된 CSV 파일에 맞춰 설계되었습니다. 대부분의 한국 데이터가 EUC-KR 형식의 CSV이기 때문에 호환이 안된다고 불평하십니다. 안되긴요... 여러분이 한글 Windows를 쓰고 있고, Excel에서 CSV로 뽑은(즉 EUC-KR 혹은 CP949) 형식일 때, > library(readr) > my_data = read_csv("myfile.csv",locale=locale('ko',encoding='euc-kr')) 이렇게 하시면 됩니다. 그냥 UTF-8 형식이었다면 > my_data = read_csv("myfile.csv") 이렇게 하면 됩니다.
교수님 오늘 수업해주셨던 내용중에 {car:ncvTest}가 glm객체에서는 실행되지 않는 것 같습니다.
답글삭제(Error in ncvTest.glm(fit) : requires lm object)
{car.ncvTest}말고 분산 동질성 검사를 할 수 있는 다른 함수가 있는지요?
또 http://www.ats.ucla.edu/stat/r/dae/logit.htm 여기에 따르면, logistic regression 회귀진단은 OLS와 다르다고 하는데, 어떤 부분이 다르고 R에서는 어떻게 할 수 있는지 궁금합니다.
제가 된다고 했던가요... ncvTest() 도 glm 객체를 받기는 하지만 (ncvTest.glm()이 있다는 의미) 그냥 에러 토하고 실행 종료될 것입니다. GLM에서는 잔차 구조에 대한 가정만 잘 세우면 되고, 선형성 가정은 만족시켜야 합니다. Breusch-Pagan test를 수행할 이유는 없답니다. 분산동질보다는 분산안정화라고 이야기하지요. logit regression 역시 GLM의 일종이라서 다음 가정을 만족하면 됩니다: independence of each data points; correct distribution of the residuals; correct specification of the variance structure; linear relationship between response and predictors.
삭제교수님 marginal r-squared와 conditional r-squared가 뭔가요? 뭐가 다른가요?
삭제Mix model? Marginal R^2는 fixed effect과 관련된 것이고 Conditional R^2는 mixed effect과 random effect을 함께 고려한 것입니다.
삭제참고로 {lme4} 패키지의 lmer()의 객체를 받아서 R> mf <- lmer(...) 이렇게 되면 {MuMIn} 패키지의 r.squaredGLMM(mf)로 R2m (= marginal), R2c(= conditional)을 계산해 볼 수 있습니다.
삭제그럼 컨디셔널을 써야겠군요. {MuMIn} 패키지로 계산해 보았답니다. 감사합니다.
삭제답변 감사드립니다!
삭제덧글을 여기에 써야 하는군요.
답글삭제교수님 안녕하세요~ 항상 좋은 강의 감사드립니다.
답글삭제간단한 질문이 있는데, 어제 3번째 강의 슬라이드에 추가해 주신 부분 중에
OLS model and output 슬라이드에서
reg.model <- lm(log(wege) ~ school + female)로 만든 lm객체가 있는데, 어떤 데이터를 사용한건지 궁금합니다.
require(car) / require(mass) / require(faraway)를 하고, data()로 각 package에 포함되어 있는 data set을 봤는데 어떤 data set인지 잘 모르겠네요 ㅠㅠ
어제 말씀하신 plspm 책 좀 공유 부탁드립니다. minhui2@empas.com
답글삭제latent variable analysis 의 저자는 누구이죠?
삭제A. Alexander Beaujean. 2014. Latent Variable Modeling Using R -A Step-by-Step Guide-. Routledge.
삭제아마존에서 구매 가능합니다.
오~~ 고맙습니다.
삭제도서관에 신청했습니다. 3월 이후에 구매 가능하다네요.
삭제저희 방에서 구매한거 있으니 급히 필요하시면 보셔요 :)
삭제작성자가 댓글을 삭제했습니다.
답글삭제{plspm}에서 missing value를 어떻게 처리하는지 궁금합니다..
답글삭제다음과 같은 코드를 통해 기존에 갖고 있는 데이터에서 factor score를 뽑아내려고 했는데
이런 에러메세지가 뜹니다.
Error in if (w_dif < specs$tol || iter == specs$maxiter) break :
missing value where TRUE/FALSE needed
plspm함수의 scaling인자를 통해 missing value를 걸러내려 했는데, 잘 안되는 것 같습니다..
factor <- read.csv(file.choose(), header=T)
head(factor)
factor[factor==-1] <- NA
enha = rep(0, 14)
soci = rep(0, 14)
conf = rep(0, 14)
cop = rep(0, 14)
opl = rep(0, 14)
opf = rep(0, 14)
crea_choi = rep(0, 14)
unpop_choi = rep(0, 14)
avoid_sim = rep(0, 14)
self = rep(0, 14)
pcon = rep(0, 14)
pview = rep(0, 14)
acon = rep(0, 14)
aviewl = rep(0, 14)
path=rbind(enha, soci, conf, cop, opl, opf, crea_choi, unpop_choi, avoid_sim, self, pcon, pview, acon, aviewl)
blocks = list(1:5, 6:10, 11:15, 16:20, 21:26, 27:32, 33:36, 37:40, 41:44, 45:54, 55:59, 60:65, 66:70, 71:75)
scal = list(c(rep("NUM",5)),c(rep("NUM",5)),c(rep("NUM",5)),c(rep("NUM",5)),c(rep("NUM",6)),c(rep("NUM",6)),
c(rep("NUM",4)),c(rep("NUM",4)),c(rep("NUM",4)),c(rep("NUM",10)),c(rep("NUM",5)),c(rep("NUM",6)),
c(rep("NUM",5)),c(rep("NUM",5)))
modes = rep("A", 14)
factor.scores = plspm(factor2, path, blocks, modes = modes, scaling = scal)
R에서 엑셀의 vlookup함수 기능을 사용할 수 있는 패키지나 방법이 있는지도 궁금합니다!
답글삭제마지막 6회차 수업 ppt5페이지에 선 그래프 그리는 법 코드 중 오류가 있습니다.
답글삭제for문으로 tree의 종류를 구분해서 line을 그리는 코드입니다.
for (i in 1:ntrees) {
tree <- subset(Orange, Tree=i)
lines(tree$age, tree$circumference, type="b", lwd=1.5,
lty=linetype[i], col=colors[i], pch=plotchar[i])
}
두 번째 줄에 원래는 tree <- subset(Orange, Tree=i)로 되어 있는데, for문이 돌아가는데는 문제가 없으나, subset 함수가 제대로 돌아가지 않아 Orange의 tree별 5가지 subset이 만들어 지는 것이 아니라, Orange object자체가 그냥 나와버립니다.
두 번째 줄에 subset(Orange, Tree=i)을 subset(Orange,Tree==i)로 바꾸면 문제없이 돌아갑니다.
혹시나 연습삼아 해볼때 참고바랍니다 :)