.csv 파일에서 데이터를 가져 와서 데이터 세트를 첨부했습니다.
내 문제 : 하나의 변수가 정수 형식이며 295 개의 수준이 있습니다. 이 변수를 사용하여 다른 변수를 만들어야하지만 레벨을 처리하는 방법을 모르겠습니다.R 데이터 프레임의 레벨
무엇이며 어떻게 처리합니까?
.csv 파일에서 데이터를 가져 와서 데이터 세트를 첨부했습니다.
내 문제 : 하나의 변수가 정수 형식이며 295 개의 수준이 있습니다. 이 변수를 사용하여 다른 변수를 만들어야하지만 레벨을 처리하는 방법을 모르겠습니다.R 데이터 프레임의 레벨
무엇이며 어떻게 처리합니까?
제대로 읽은 내용을 확인하는 요약 (데이터)을 수행하십시오. 열이 숫자가 아닌 경우, colClasses 인수를 read.csv로 조사하여 강제로 생성합니다. 그러면 부적절한 숫자의 NA 값이 생성됩니다.
help (read.csv)가 도움이 될 것입니다.
Spacedman : colClasses를 사용할 수 있습니까? 국가 보안관을 강요 하는가? 처음에 txt <- c ("x, y, z", "1,2,3", "a, b, c", "1,2,3")로 생각했습니다. 스캔시 d <- read.table (textConnection (txt), sep = ",", header = TRUE, colClasses = rep ("numeric", 3)) 오류가 발생합니다. read.table에 누락 된 것이 있습니까? – mdsumner
@mdsummer : 큰 따옴표를 제거하십시오. 그들은 당신이 의도하지 않은 방식으로 당신의 캐릭터를 묶어 놓습니다. –
@mdsummer : 그러나 문제는 계속되었습니다. as.is = TRUE가 필요합니다. –
read.table (또는 read.csv? - 지정하지 않음)을 사용하여 데이터를 읽을 때 argumentsAsFactors = FALSE 인수를 추가하십시오. 그런 다음 문자 데이터를 가져옵니다.
열의 정수를 예상하는 경우 정수로 해석 할 수없는 데이터가 있어야하므로 읽은 후에 숫자로 변환하십시오.
txt <- c("x,y,z", "1,2,3", "a,b,c")
d <- read.csv(textConnection(txt))
sapply(d, class)
x y z
##"factor" "factor" "factor"
## we don't want factors, but characters
d <- read.csv(textConnection(txt), stringsAsFactors = FALSE)
sapply(d, class)
# x y z
#"character" "character" "character"
## convert x to numeric, and wear NAs for non numeric data
as.numeric(d$x)
#[1] 1 NA
#Warning message:
#NAs introduced by coercion
마지막으로 이러한 입력 세부 정보를 무시하고 요소 사용에서 정수 수준을 추출하려는 경우. ? 요소의 "경고"에 따라 as.numeric (수준 (d $ x)) [d $ x]. ! 나는 당신이 read.table와 헤더 = TRUE, stringAsFactors = FALSE로 읽기 문을 다시 실행하고 as.is 제안 당신의 설명에서 근무
연습을 보내 주셔서 감사합니다! –
= stringsAsFactors 및 9월 = ","
datinp <- read.table("Rdata.csv", header=TRUE, stringAsFactors=FALSE ,
as.is = !stringsAsFactors , sep=",")
datinp$a <- as.numeric(datinp$a)
datinp$b <- as.numeric(datinp$b)
datinp$ctr <- with(datinp, as.integer(a/b)) # no loop needed when using vector arithmetic
또는 간단히 사용할 수 있습니다
d$x2 = as.numeric(as.character(d$x))
.
이것은 '레벨'의 의미에 따라 몇 가지 의미가 있습니다. 당신의 숫자가 요인 변수로 변환 된 것처럼 들리는데, 그 이유는 잘못된 형식의 숫자가 있기 때문입니다. 그래서 R은 모든 것을 범주 형 '요인'변수로 변환합니다. 정확한 코드와 오류 메시지를 잘라 붙여 넣으시겠습니까? – Spacedman
'? factor'를 읽었습니까? 또는? 수준? – Marek
setwd ("D :/users/me/Desktop") 데이터 <- read.csv ("Rdata.csv") 첨부 (데이터) ctr <- for (i in 1 : 4722) \t \t {as.integer (a [i]/b [i])} – user446667