какой результат в списке - PullRequest
       7

какой результат в списке

0 голосов
/ 31 января 2019

edit: см. Решение внизу.

У меня проблемы с использованием результата which.max в списке.Ниже приведен пример, который воспроизводит мою проблему.

Создание фрейма данных

library(dplyr)
library(ggplot2)
library(forcats)

name <- c('A','A','A', 'A','A','A', 'A','A','A', 
          'B','B','B', 'B','B','B', 'B','B','B',
          'C','C','C', 'C','C','C', 'C','C','C')
month = c("oct 2018", "oct 2018", "oct 2018","nov 2018", "nov 2018", "nov 2018","dec 2018", "dec 2018", "dec 2018",
         "oct 2018", "oct 2018", "oct 2018","nov 2018", "nov 2018", "nov 2018","dec 2018", "dec 2018", "dec 2018" ,
         "oct 2018", "oct 2018", "oct 2018","nov 2018", "nov 2018", "nov 2018","dec 2018", "dec 2018", "dec 2018" )
value <- seq(1:length(month))

df = data.frame(name, month, value)
df

Результат

name    month   value
A   oct 2018    1
A   oct 2018    2
A   oct 2018    3
A   nov 2018    4
A   nov 2018    5
A   nov 2018    6
A   dec 2018    7
A   dec 2018    8
A   dec 2018    9
B   oct 2018    10
B   oct 2018    11
B   oct 2018    12
B   nov 2018    13
B   nov 2018    14
B   nov 2018    15
B   dec 2018    16
B   dec 2018    17
B   dec 2018    18
C   oct 2018    19
C   oct 2018    20
C   oct 2018    21
C   nov 2018    22
C   nov 2018    23
C   nov 2018    24
C   dec 2018    25
C   dec 2018    26
C   dec 2018    27 

Извлечение названия наблюдения с наибольшим значением

memberLargestValue = df[which.max(df$value),]$name
memberLargestValue

Результат

[1] C
Levels: A B C

Слияние memberLargestValue с существующим списком

oldList = c("A", "A")
newList  = c(oldList, memberLargestValue)
newList

Результат

[1] "A" "A" "3"

Я не хочу, чтобы "3" вВыше список, но я хочу вместо этого "C".Кто-нибудь знает, как я могу получить доступ к "C" в "memberLargestValue" и получить его в списке?

Решение: Изменить на тип "символов":

memberLargestValue = as.character(df[which.max(df$value),]$name)
...