[英]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.