R Dataframe中的级别

use*_*667 7 r levels

我从.csv文件导入数据,并附加了数据集.
我的问题:一个变量是整数形式,有295个级别.我需要使用这个变量来创建其他变量,但我不知道如何处理这些变量.

这些是什么,我该如何处理它们?

mds*_*ner 8

当您使用read.table(或read.csv? - 未指定)读入数据时,请添加参数stringsAsFactors = 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 
Run Code Online (Sandbox Code Playgroud)

最后,如果你想忽略这些输入细节并从因子中提取整数级别,例如as.numeric(levels(d $ x))[d $ x],按照因子中的"Warning".


小智 5

或者你可以简单地使用

d$x2 = as.numeric(as.character(d$x)).


Spa*_*man 1

进行摘要(数据)以检查是否正确读取内容。如果列不是应该是数字的,请查看 read.csv 的 colClasses 参数来强制它,这也可能会导致格式不良的数字产生 NA 值。

help(read.csv) 会有所帮助。