2014-11-01 54 views
0

我有一个数据帧,看起来像这样重构hashStrings到整数R中

column1  column2 
asdf  qwer 
fghj  qwer 
asdf  mkop 
fghj  mkop 
yuio  lops 

正如你所看到的,字符串值并不意味着什么,我只有在自己的哈希字符串是相同的关心。我如何重构它,看起来像这样?

column1  column2 
1   1 
2   1 
1   2 
2   2 
3   3 

回答

1

这是很容易,因为在R A因素的基础结构(这是怎么你的字符串会默认存储)仅仅是个数字代码加上一套“级别”(标签)的。

dd <- read.table(header=TRUE,text=" 
column1  column2 
asdf  qwer 
fghj  qwer 
asdf  mkop 
fghj  mkop 
yuio  lops 
") 

dd[] <- lapply(dd,as.numeric) 
如果要替换原来的数据集

,否则

dd2 <- as.data.frame(lapply(dd,as.numeric)) 
1

你说,这些列在一个数据帧。我认为这些应该是因素。如果不是,使用as.factor()函数很容易将它们转化为因子。 之后,你将它们转换成数字字段,你有你想要的!例如:

column1 <- c('asdf','bjel','cdea','asdf','asdf','bjel') 
df <- data.frame(column1) 
df$column1 <- as.factor(df[['column1']]) #use this first if you column is type character 
df$column1 <- as.numeric(df[['column1']]) 

> str(df) 
'data.frame': 6 obs. of 1 variable: 
$ column1: num 1 2 3 1 1 2