df_intrate가 실제로 애셋 클래스 A의 예상 행 수인 것으로 나타 났음에도 불구하고 df_intrate에 구조 정보가 그대로 유지됩니까?
예. 이것은, 요인라는 R에 저장하는 방법 범주 변수입니다 - 모두 수준, 가능한 모든 값의 벡터와 촬영 한 실제 값, 저장됩니다 : 당신은 제거 할 수
x = factor(c('a', 'b', 'c', 'a', 'b', 'b'))
x
# [1] a b c a b b
# Levels: a b c
y = x[1]
# [1] a
# Levels: a b c
이
droplevels(y)
# [1] a
# Levels: a
factor(y)
# [1] a
# Levels: a
당신은 모든 요소 컬럼에서 사용되지 않는 모든 수준을 떨어 데이터 프레임에 droplevels
를 사용할 수 있습니다 droplevels()
, 또는 존재하는 것만에서 새로운 요소를 창조하는 factor
기능을 다시 적용하여 사용되지 않는 수준 :
현재의 문제와 관련이없는, 우리는 또한 factor
는 요인의 수준과 그들이 가야하는 순서를 지정하는 데 사용할 수있는 선택적 levels
인수를 가지고 언급해야하지만
dat = data.frame(x = x)
str(dat)
# 'data.frame': 6 obs. of 1 variable:
# $ x: Factor w/ 3 levels "a","b","c": 1 2 3 1 2 2
str(dat[1, ])
# Factor w/ 3 levels "a","b","c": 1
str(droplevels(dat[1, ]))
# Factor w/ 1 level "a": 1
. 이는 특정 순서 (음모 또는 모델링)를 원하거나 실제로 존재하는 레벨보다 가능한 레벨이 있고이를 포함하고자하는 경우 유용 할 수 있습니다.
levels
을 지정하지 않으면 기본값이 알파벳 순서로 지정됩니다.
x = c("agree", "disagree", "agree", "neutral", "strongly agree")
factor(x)
# [1] agree disagree agree neutral strongly agree
# Levels: agree disagree neutral strongly agree
## not a good order
factor(x, levels = c("disagree", "neutral", "agree", "strongly agree"))
# [1] agree disagree agree neutral strongly agree
# Levels: disagree neutral agree strongly agree
## better order
factor(x, levels = c("strongly disagree", "disagree", "neutral", "agree", "strongly agree"))
# [1] agree disagree agree neutral strongly agree
# Levels: strongly disagree disagree neutral agree strongly agree
## good order, more levels than are actually present
당신은 ?reorder
및 ?relevel
(또는 factor
다시는) 이미 생성 된 요소에 대한 수준의 순서를 변경하는 데 사용할 수 있습니다.
'read.csv (path, as.is = TRUE) '를 사용하면 인자 열 대신 문자 열을 얻을 수 있습니다. 또한'header = TRUE'와'sep = ","''read.csv'가 기본값이므로 지정할 필요가 없습니다. –