В data.frame DATA
у меня есть несколько столбцов, которые являются постоянными числами в уникальных строках первого столбца с именем study.name
. Например, столбцы ESL
и prof
имеют значение константа для всех строк Shin.Ellis
и константа для всех строк Trus.Hsu
и т. Д. Включая Shin.Ellis
и Trus.Hsu
, есть 8 уникальные study.name
строки.
НО после моего вызова split.default()
ниже, как я могу получить только одну точку данных для всехстроки под уникальным study.name
(например, один для Shin.Ellis
, один для Trus.Hsu
и т. д.) для таких постоянных переменных? (т. е. 8 строк в целом)
Например, после моего split.default()
все переменные с именем ESL
show имеют только 8
строк для каждой уникальной study.name
.
Мой желаемый выходной сигнал для ONLY ESL
и prof
показан ниже.
NOTE : Это игрушечные данные. Сначала мы должны найти постоянные переменные. Функциональный ответ высоко ценится.
DATA <- read.csv("https://raw.githubusercontent.com/izeh/m/master/irr.csv", h = T)[-(2:3)]
DATA <- setNames(DATA, sub("\\.\\d+$", "", names(DATA)))
tbl <- table(names(DATA))
nm2 <- names(which(tbl==max(tbl)))
L <- split.default(DATA[names(DATA) %in% nm2], names(DATA)[names(DATA) %in% nm2])
## FIRST 8 ROWS of `DATA`:
# study.name ESL prof scope type ESL prof scope type
# 1 Shin.Ellis 1 2 1 1 1 2 1 1
# 2 Shin.Ellis 1 2 1 1 1 2 1 1
# 3 Shin.Ellis 1 2 1 2 1 2 1 1
# 4 Shin.Ellis 1 2 1 2 1 2 1 1
# 5 Shin.Ellis 1 2 NA NA 1 2 NA NA
# 6 Shin.Ellis 1 2 NA NA 1 2 NA NA
# 7 Trus.Hsu 2 2 2 1 2 2 1 1
# 8 Trus.Hsu 2 2 NA NA 2 2 NA NA
# . ... . . . . . . . . # `DATA` has 54 rows overall
Желаемый вывод для ESL
и prof
после split.default()
вызова:
# $ESL ## 8 unique rows for 8 unique `study.name`
# ESL ESL.1
# 1 1 1
# 7 2 2
# 9 1 1
# 17 1 1
# 23 1 1
# 35 1 1
# 37 2 2
# 49 2 2
# $prof ## 8 unique rows for 8 unique `study.name`
# prof prof.1
# 1 2 2
# 7 2 2
# 9 3 3
# 17 2 2
# 23 2 2
# 35 2 2
# 37 NA NA
# 49 2 2