我收到了这些数据:
> str(gaDataExt)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 2 obs. of 5 variables:
$ date : POSIXct, format: "2016-05-24" "2016-05-31"
$ deviceCategory: chr "desktop" "desktop"
$ users : int 1 2
$ sessions : int 1 2
$ pageviews : int 11 85
- attr(*, "profileInfo")=List of 6
..$ profileId : chr "25439551"
..$ accountId : chr "12543305"
..$ webPropertyId : chr "UA-12543305-1"
..$ internalWebPropertyId: chr "26790206"
..$ profileName : chr "www.ciao.ch"
..$ tableId : chr "ga:25439551"
- attr(*, "query")=List of 8
..$ start.date : chr "30daysAgo"
..$ end.date : chr "yesterday"
..$ profileId : chr "ga:25439551"
..$ dimensions : chr "ga:date,ga:deviceCategory"
..$ metrics : chr "ga:users" "ga:sessions" "ga:pageviews"
..$ segment : chr "sessions::condition::ga:pagePath=@/f /relations /questions_reponses-best_of/;sessions::condition::ga:pagePath=@/f/manger-bouger/q"| __truncated__
..$ start.index: int 1
..$ max.results: int 10000
- attr(*, "sampled")= logi FALSE
我想用ggplot2创建一个情节但我无法访问$ segment中的数据? 是否可以转换为数据框?
答案 0 :(得分:7)
df = as.data.frame(gaDataExt)
这很简单。
答案 1 :(得分:0)
如果这准确再现了str()
的输出(我不确定,因为users
,sessions
,pageviews
似乎是缩进),然后segments
组件实际上是列表中的几个组件之一,它是pageviews
组件的属性。
假设上述内容正确无误,那么您可以通过以下方式访问包含segment
组件的列表:
attr(gaDataExt$pageviews, "query")$segment
或
attr(gaDataExt[["pageviews"]], "query")$segment
如果这些属性实际上是tbl_df
的属性,则通过
segments
attr(gaDataExt, "query")$segment
我怀疑你想要这个,因为属性似乎出现在tbl_df
上,str()
输出不清楚。
答案 2 :(得分:0)
我在尝试将数据输入knn时遇到了同样的问题,并且它告诉我,不良导入的子集长度不同。我最终创建了一个for循环,将每个列逐个转储到一个新的数据框中。新的数据框架很干净。
我的代码:
library(readr)
#Import data to CancerData
cancerData_raw <- read_csv("E:/R/TestDataSets/breast-cancer-wisconsin.data", col_names = FALSE)
#clean data structure. This read is giving lots of errors and tbl, tbl_df, dataframe types
cancerData <- data.frame(cancerData_raw[,1])
for (column in c(2:ncol(cancerData_raw))){
print(column)
cancerData <- cbind(cancerData, cancerData_raw[,column])
}
#comparing the structure of the old set vs copied one:
str(cancerData_raw)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 699 obs. of 11 variables:
#vs
str(cancerData)
'data.frame': 699 obs. of 11 variables:
我不确定是否有更简单的方法来执行该操作。在较大的集合上运行这是非常低效的。