Язык R: объект типа 'замыкание' не может быть подмножеством при применении [с lapply - PullRequest
2 голосов
/ 09 июля 2019
Weather <- list    (Chicago=chicagoF,Houston=houstonF,
NewYork=NewYorkF,SanFrancisco=SanFranciscoF)


chicagoF which is one of the list items is as below
(temperature is in Farenheit; hence F after Chicago) 

                  Jan    Feb    Mar    Apr    May    Jun    Jul        
AvgHigh_F        32.00  36.00  46.00  59.00  70.00  81.00  84.00    
AvgLow_F         18.00  21.00  30.00  41.00  52.00  63.00  68.00  
AvgPrecip_inch    2.05   1.93   2.72   3.62   4.13   4.06   4.02      
DaysWithPrecip   10.00   8.00  11.00  11.00  11.00  10.00   9.00      
HoursOfSunshine 135.00 136.00 187.00 215.00 281.00 311.00 318.00  

Точно так же другие 3 города Сан-Франциско, Хьюстон и Нью-Йорк (другие 3 пункта списка) имеют одинаковые столбцы и разные данные.

Я пытаюсь реплицировать Weather $ Chicago [1,1] с помощью Lapply. Если я не используйте Lapply, тогда мне нужно ввести 4 команды:

4 steps I want to implement:
Weather$Chicago[1,1] #It should result in 32 for example
Weather$Houston[1,1] # similarly accessing first element of the next
item in list
Weather$NewYork[1,1]
Weather$SanFrancisco[1,1]

Теперь эти 4 шага являются итеративными, поэтому я хочу использовать lapply, где первый элемент - это имя списка = Погода, второй элемент = [или оператор скобки, а 3-й элемент и 4-й элемент равны 1 и 1, что аналогично доступу отдельные элементы списка Чикаго, Хьюстон и т. д. Первые элементы: Погода $ Чикаго [1,1]

Попытка lapply[Weather, "[", 1,1] дает ошибку.

Ошибка в lapply [Weather, "[", 1, 1]: объект типа 'closure' не является subsettable ****

Пожалуйста, расскажите, как реализовать 4 шага этого списка с помощью lapply.

Ответы [ 2 ]

2 голосов
/ 09 июля 2019

Мы можем использовать следующее, где lst - ваш список фреймов данных:

lapply(lst,"[",i=1,j=1)

Пример:

lst <- list(iris,mtcars)
lapply(lst,"[",i=1,j=2)
[[1]]
[1] 3.5

[[2]]

[1] 6
0 голосов
/ 10 июля 2019

Спасибо за помощь.Произошла ошибка при вводе кода.Я использовал [вместо (скобка

). Поэтому я использовал

 lapply[Weather,"[",1,1].

. Как только я использовал круглые скобки, проблема была решена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...