我被困在列表上做了一些操作。此列表是googleAnalyticsR库中ga_account_list()的输出。
这是列表的示例(前两个元素)。我称之为ga_goals:
List of 2
$ :List of 6
..$ kind : chr "analytics#goals"
..$ username : chr "1234@abcd.de"
..$ totalResults: int 9
..$ startIndex : int 1
..$ itemsPerPage: int 1000
..$ items :'data.frame': 9 obs. of 15 variables:
.. ..$ id : chr [1:9] "1" "2" "3" "4" ...
.. ..$ kind : chr [1:9] "analytics#goal" "analytics#goal" "analytics#goal" "analytics#goal" ...
.. ..$ selfLink : chr [1:9] "https://www.googleapis.com/analytics/v3/management/accounts/46324974/w
......
$ :List of 6
..$ kind : chr "analytics#goals"
..$ username : chr "1234@abcd.de"
..$ totalResults: int 8
..$ startIndex : int 1
..$ itemsPerPage: int 1000
..$ items :'data.frame': 8 obs. of 15 variables:
.. ..$ id : chr [1:8] "2" "3" "4" "5" ...
.. ..$ kind : chr [1:8] "analytics#goal" "analytics#goal" "analytics#goal" "analytics#goal" ...
.. ..$ selfLink : chr [1:8] "https://www.googleapis.com/analytics/v3/management/accounts/46324974/w
我想要做的是编写一个删除此列表中某些元素的函数。例如,我想删除" kind"和"用户名"字段。
我试图通过编写一个可以应用于ga_goals列表的函数来利用r函数编程功能。但它没有用。
这是函数和对它的调用:
clean_goal_list <- function(goal_list){
goal_list[["kind"]] <- NULL
}
map(ga_goals, clean_goal_list)
运行此命令将返回以下输出:
[[1]]
NULL
[[2]]
NULL
原始列表保持不变。
我感谢任何帮助!
答案 0 :(得分:1)
我终于弄清楚了为什么我的做法不起作用。
我的错误是我认为我可以直接使用它作为map函数的参数来操纵ga_goals。我所知道的是在函数内部停止此列表的副本,并将操作列表作为函数的输出返回。
我的第二个错误是尝试使用goal_list [[&#34; kind&#34;]]来添加列表元素(在函数内)。这没用。我尝试了goal_list $ kind,这可以按预期工作。