Это продолжение этого вопроса . В data.frame DATA
у меня есть несколько столбцов, которые являются постоянными числами в уникальных строках первого столбца с именем study.name
. Например, столбцы setting
, prof
и random
имеют значения константа для всех строк Shin.Ellis
и константа для всех строк Trus.Hsu
и т. Д. Включая Shin.Ellis
и Trus.Hsu
, есть 10 уникальные study.name
строки.
Интересно, как найти имена таких постоянных столбцов?
Решение был предоставлен ниже (см. NAMES
), но мне интересно, почему "error"
, который не является постоянным, выводится из NAMES
?
DATA <- read.csv("https://raw.githubusercontent.com/izeh/m/master/cc.csv")
DATA <- setNames(DATA, sub("\\.\\d+$", "", names(DATA)))
is_constant <- function(x) length(unique(x)) == 1L
(NAMES <- names(Filter(all, aggregate(.~study.name, DATA, is_constant)[-1])) )
# > [1] "setting" "prof" "error" "random" ## "error" is NOT a constant variable
## BUT why it is outputted here!
# Desired output:
# [1] "setting" "prof" "random"