如何在R中的嵌套列表中删除以下data.frames列的属性?
List of 1
$ 0021400001:List of 19
$ GameSummary :'data.frame': 1 obs. of 13 variables:
$ GAME_DATE_EST : Factor w/ 1 level "2014-11-09T00:00:00": 1
- attr(*, "names")= chr "1"
$ GAME_SEQUENCE : Factor w/ 1 level "2": 1
- attr(*, "names")= chr "2"
$ GAME_ID : Factor w/ 1 level "0021400091": 1
- attr(*, "names")= chr "3"
$ GAME_STATUS_ID : Factor w/ 1 level "3": 1
- attr(*, "names")= chr "4"
$ SeasonSeries :'data.frame': 1 obs. of 7 variables:
$ GAME_ID : Factor w/ 1 level "0021400001": 1
- attr(*, "names")= chr "1"
$ HOME_TEAM_ID : Factor w/ 1 level "1610612740": 1
- attr(*, "names")= chr "2"
$ VISITOR_TEAM_ID : Factor w/ 1 level "1610612753": 1
- attr(*, "names")= chr "3"
Run Code Online (Sandbox Code Playgroud)
小智 13
这可能为时已晚,无法回答这个问题,但我想分享一下.
两个解决方案:1.从merTools包中的函数stripAttributes.
从数据框MyData中的变量VAR中删除属性ATT:
attr(MyData$VAR, "ATT") <- NULL
Run Code Online (Sandbox Code Playgroud)如果要删除所有变量的多个属性:
For (var in colnames(MyData)) {
attr(MyData[,deparse(as.name(var))], "ATT_1") <- NULL
attr(MyData[,deparse(as.name(var))], "ATT_2") <- NULL
}
Run Code Online (Sandbox Code Playgroud)
我希望这有助于此
您可以编写一个对列表中的一个条目起作用的函数,例如
one_entry <- function(x) {
for (i in length(x)) attr(x[[i]], "names") <- NULL
return(x)
}
Run Code Online (Sandbox Code Playgroud)
然后运行lapply:
lapply(my_list, FUN=one_entry)
Run Code Online (Sandbox Code Playgroud)
问题中mylist的数据结构在哪里。