![](/img/trans.png)
[英]Retrieving specified columns from a list of csv files to create a data data frame in R
[英]how to create the frame data structure with columns from csv data in R?
以下是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。
因此,我不知道该如何创建由导入的数据列组成的框架数据结构,如果有人能显示出创建适当数据结构的方式,我将非常感激。
您的问题是,您正在通过使用类数而不是相应的值将因子转换为整数。 您可以检查类是否按值的升序编号:
> 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
data <- read.csv ("data.csv", stringsAsFactors=FALSE)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.