Создан вложенный именованный список в R - PullRequest
0 голосов
/ 08 июня 2018

Допустим, у меня есть такой список:

df = list(
Happy = c('Yes','No','Maybe'),
Satisfaction = c('Strongly Agree','Agree','Disagree','Strongly Disagree')
)

, но что мне нужно

df = list(
    Happy = c('Yes'='Happy-yes','No'='Happy-yes','Maybe'='Happy-maybe'),
    Satisfaction = c('Strongly Agree'='Satisfaction-Strongly Agree",'Agree'="Satisfaction-Agree",'Disagree'='Satisfaction-Disagree','Strongly Disagree'='Satisfaction-Strongly Disagree'))

Затем я передам этот список для ввода choices () в Shiny, но таким образомУ меня есть способ отобразить ответ на группировку именованного списка.

Ответы [ 2 ]

0 голосов
/ 08 июня 2018

Вы можете выбрать lapply, чтобы сделать это:

dfx <- lapply(1:length(df), function(i)paste0(names(df)[i],"-",df[[i]]))
dfxf <- lapply(1:length(dfx), function(i) `names<-`((dfx[[i]]), df[[i]]))
names(dfxf) <- names(df)

Выход :

 > dfxf
$Happy
          Yes            No         Maybe 
  "Happy-Yes"    "Happy-No" "Happy-Maybe" 

$Satisfaction
                  Strongly Agree 
   "Satisfaction-Strongly Agree" 
                           Agree 
            "Satisfaction-Agree" 
                        Disagree 
         "Satisfaction-Disagree" 
               Strongly Disagree 
"Satisfaction-Strongly Disagree" 

Пожалуйста, обратите внимание здесь , OPкажется, что желаемый результат имеет небольшую опечатку, поскольку вы можете видеть, что вместо «Happy-No» во втором элементе первого списка написано «Happy-Yes», ​​также корпус отключен (при условии, что это так).

0 голосов
/ 08 июня 2018

Map до paste вместе и setNames для обозначения нового значения старым значением:

Map(function(nm,x) setNames(paste(nm,x,sep="-"),x), names(df), df)
#$Happy
#          Yes            No         Maybe 
#  "Happy-Yes"    "Happy-No" "Happy-Maybe" 
# 
#$Satisfaction
#                  Strongly Agree                            Agree 
#   "Satisfaction-Strongly Agree"             "Satisfaction-Agree" 
#                        Disagree                Strongly Disagree 
#         "Satisfaction-Disagree" "Satisfaction-Strongly Disagree" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...