簡體   English   中英

如何將整數轉換為R中的因子?

[英]How to convert integer to factor in R?

說我有以下df

x<-c(1,3,2,4,1,3,2,4,1,3,2,4)
y<-c(rnorm(12))
df<-data.frame(x,y)

x是整數,我嘗試使用R cookbook的建議將其轉換為一個因子:

df[,'x']<-factor(df[,'x'])

但它仍然是一個整數。 我試過在論壇上找到的解決方案

df[,'x']<-lapply(df[,'x'], factor)

但它也沒有用。 謝謝。

您的原始解決方案似乎有效。 檢查typeof()以及class()

x<-c(1,3,2,4,1,3,2,4,1,3,2,4)
y<-c(rnorm(12))
df<-data.frame(x,y)
typeof(df$x)
#"double"    
class(df$x)
#"numeric"
df[,'x']<-factor(df[,'x'])
typeof(df$x)
 #"integer"
class(df$x)
#"factor"

可能會嘗試

df$x=as.factor(df$x)

編碼

df[,'x']<-factor(df[,'x'])

確實可以正常工作。 但是使用你選擇的1,2,3,4的x值並不是那么明顯。 試試吧:

x<-c(10,23,23, 12, 12, 12, 10, 10, 34, 45, 10, 23)
y<-c(rnorm(12))
df<-data.frame(x,y)
df[,'x']<-factor(df[,'x'])
str(df)

現在很容易看出x列有因子w / 5級“10”,“12”,“23”......

這將工作:

df[,'x'] <- as.factor(df[,'x'])

嘗試這個。

df[,'x'] <- as.factor(as.character(df[,'x']))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM