我是一个新的初学者学习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"))
它有效。我觉得我在这里错过了什么。
非常感谢您的帮助。
答案 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"))
)