以下是R中导入数据的前五行:
数据[1:5,]
user event_date day_of_week
1 00002781A2ADA816CDB0D138146BD63323CCDAB2 2010-09-04 Saturday
2 00002D2354C7080C0868CB0E18C46157CA9F0FD4 2010-09-04 Saturday
3 00002D2354C7080C0868CB0E18C46157CA9F0FD4 2010-09-07 Tuesday
4 00002D2354C7080C0868CB0E18C46157CA9F0FD4 2010-09-08 Wednesday
5 00002D2354C7080C0868CB0E18C46157CA9F0FD4 2010-09-17 Friday
distinct_events_a_count total_events_a_count
1 2 2
2 2 2
3 1 3
4 1 1
5 1 1
events_a_duration distinct_events_b_count total_events_b_count
1 615 1 1
2 77 1 1
3 201 1 1
4 44 1 1
5 3 1 1
events_b_duration
1 47
2 43
3 117
4 74
5 18
问题是第6列和第9列被读作因子而不是数字,因此我无法执行数学运算。为了将导入的数据转换为适当的格式,我尝试按以下方式创建结构数据集:
dataset<-data.frame(events_a_duration=as.numeric(c(data[,6])), events_b_duration=as.numeric(c(data[,9])))
但检查值我发现帧结构不包含适当的值:
dataset[1,]
events_a_duration events_b_duration
1 10217 6184
值应为615和47。
所以我不知道如何创建由导入数据列组成的帧数据结构,如果有人能够展示创建适当数据结构的方法,那将非常感激。
答案 0 :(得分:4)
您的问题是您使用类的数量而不是相应的值将因子转换为整数。您可以检查类是否按值的升序编号:
> as.numeric(factor(c(615,47,42)))
[1] 3 2 1
> as.numeric(factor(c(615,42,47)))
[1] 3 1 2
> as.numeric(factor(c(615,42,47,37)))
[1] 4 2 3 1
> as.numeric(factor(c(615,42,37,47)))
[1] 4 2 1 3
使用as.numeric(as.character(MyFactor))
。例如,见下文:
> as.numeric(as.character(factor(c(615,42,37,47))))
[1] 615 42 37 47
答案 1 :(得分:1)
data <- read.csv ("data.csv", stringsAsFactors=FALSE)