繁体   English   中英

如何用R中的csv数据创建带有列的帧数据结构?

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM