R工作区并从数字变量创建因子变量

时间:2013-12-18 00:39:33

标签: r

我是一个新的初学者学习R.我的问题应该与R的工作空间或创建因子变量或两者相关。这是我的问题:我使用这种语法打开一个名为“lecturerData”的csv文件:

lecturerData <- read.csv("Lecturer Data.csv" , header = TRUE)

此文件有一个标题为“job”的列,它有两个neumwric值:1和2.我想将这些值更改为factor变量,以便1表示Lecturer,2表示Student。所以,我使用了这种语法:

job <- factor (job, levels = c(1:2), labels=c("Lecturer","Student"))

但我收到此错误消息:

object 'job' not found

然后我将上面的语法改为:

lecturerData$job <- factor (lecturerData$job, levels = c(1:2),
                            labels=c("Lecturer","Student"))

它有效。我觉得我在这里错过了什么。

非常感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

因为作业data.frame 讲授数据的一列,所以R会话在没有信息的情况下对作业列一无所知关于讲师数据$告诉它查看讲授数据

以下是介绍手册的相关部分: http://cran.r-project.org/doc/manuals/R-intro.html#Lists-and-data-frames

答案 1 :(得分:0)

job <- factor (job, levels = c(1:2), labels=c("Lecturer","Student"))

您正在尝试调用尚未创建的变量来解释错误。

如果您做了类似

的事情
job <- lecturerData[,(inserts column number for job)]

然后运行上面的代码应该解决你的问题

希望有所帮助

答案 2 :(得分:0)

以下是一些如何创建data.frame然后创建factor()变量的示例。

# Create a data frame

df <- data.frame(x = 1:1000, y = rnorm(1000, 100, 20))

# Take a look at it
head(df)
names(df)
str(df)

# Convert a numerical variable to a factor variable
# check out ?cut
# also ?rnorm

df$z <- cut(df$y, breaks = c(0, 50, 100, 200, 1000000) )

df$binary <- ifelse(df$y < 100, 1 , 0)

str(df)
# Now binary is numeric
# If i just type binary i'm R doesn't know in which data.frame it is.

df$binary_factor <- factor(df$binary, levels = 1:2, labels = c("lecturer", "student") )

# Take a look at it again
head(df)
names(df)
str(df)

# Agreggate
# Check out ?table

table <- table(df$z)

plot(df$z)

library(ggplot2)
qplot(df$y, binwidth = 0.5, fill = df$z)
qplot(df$z, fill = df$z)

答案 3 :(得分:0)

你也可以使用transform()来避免必须使用$语法:

lecturerData <- transform(lecturerData,
    job = factor(job, levels = c(1:2), labels=c("Lecturer","Student"))
)