Другой вопрос о синтаксисе списка (я медленно изучаю, я думаю). У меня есть данные в следующем виде: упрощенногоПрименение hist к списку dataframes, содержащему NA
a=c(1,2,3,4,5,NA,NA)
b=c(6,7,8,9,10,NA,NA)
c=c(6,5,3,NA,NA,NA,NA)
d=c(NA,NA,NA,NA,NA,NA,NA)
A=data.frame(a,b,c,d)
B=data.frame(c,b,a,d)
C=data.frame(d,c,b,a)
mylist=list(A,B,C)
bins=c(0,2,4,6,8,10)
Я хотел бы бен каждый столбец в списке dataframes в соответствии с определенными бункерами, а затем возвращаю среднее число для каждого бункера для каждого dataframe. Я не возражаю против того, какой формой является выход, кадр данных или список векторов. Таким образом, в этом примере:
hist(a,bins, plot= FALSE)
hist(b,bins, plot= FALSE)
hist(c,bins, plot= FALSE)
дают отсчеты
$counts
[1] 2 2 1 0 0
$counts
[1] 0 0 1 2 2
$counts
[1] 0 1 2 0 0
соответственно.
я не знаю, как это сделать, но при условии, что d содержит только NA-х я хотел бы его вернуть:
$counts
[1] 0 0 0 0 0
(я думаю превратить каждый NA в 0).
Поэтому среднее значение А (который содержит а, б, в, г) будет:
$counts
[1] 2 2 1 0 0 +
$counts
[1] 0 0 1 2 2 +
$counts
[1] 0 1 2 0 0 +
$counts
[1] 0 0 0 0 0 +
= 2 3 4 2 2/4
= 0.5 0.75 1 0.5 0.5
Это будет мой желаемый выход для dataframe А. Окончательный список векторов будет также включать в себя соответствующие векторы для B и C, хотя, как я уже сказал, числовой кадр столбцов для каждого кадра данных в исходном списке также будет прекрасным, так как последний шаг будет состоять в том, чтобы я построил эти средние подсчеты против середины бункера.
Надеюсь, что моего объяснения достаточно, чтобы дать некоторое представление о том, что я пытаюсь сделать.
Сделать 'd' цифровой:' d <- as.numeric (d) 'и он должен работать. – Thomas
Привет, Томас, спасибо. В более простом случае, когда я хочу игнорировать столбцы в списке фреймов данных, которые содержат все NA (например, d), как я могу начать бинирование данных и получить среднее значение? – user1912925