#r #dataframe #statistics
Вопрос:
у меня есть данные, и я хочу посмотреть, имеют ли все мои переменные уникальное значение в определенной строке, допустим, я хочу проанализировать строку D
мои данные
Name F S T A 1 2 3 B 2 3 4 C 3 4 5 D 4 5 6 gt; TRUE (because all the three variables have unique value)
Второй пример
Name F S T A 1 2 3 B 2 3 4 C 3 4 5 D 4 5 4 gt;False (because F and T have the same value in row D )
Ответ №1:
В base R
до
f1 lt;- function(dat, ind) { tmp lt;- unlist(dat[ind, -1]) length(unique(tmp)) == length(tmp) }
-тестирование
gt; f1(df, 4) [1] TRUE gt; f1(df1, 4) [1] FALSE
данные
df lt;- structure(list(Name = c("A", "B", "C", "D"), F = 1:4, S = 2:5, T = 3:6), class = "data.frame", row.names = c(NA, -4L)) df1 lt;- structure(list(Name = c("A", "B", "C", "D"), F = 1:4, S = 2:5, T = c(3L, 4L, 5L, 4L)), class = "data.frame", row.names = c(NA, -4L))
Ответ №2:
Вы можете использовать dplyr
для этого:
df %gt;% summarize_at(c(2:ncol(.)), n_distinct) %gt;% summarize(if_all(.fns = ~ .x == nrow(df)))