Я хотел бы заменить все значения в списке (An) с их соответствующими значениями в другом фрейме.R: Заменить все значения в списке в соответствии с правилами в другом фрейме данных
String<-c("a","b","c")
Strn<-1:length(String)
LK<-data.frame(String,Strn)
An<-as.vector(permn(length(Strn)))
Я создал простой пример выше всего 3 элементов, но у меня есть много лагера и более разнообразный список в моих данных (отсюда простой IfElse перекодировать бы слишком долго). Поэтому здесь я хочу, чтобы «a» было заменено на 1, b с 2 и c с 3 по всему списку, потому что это «правила», найденные в LK.
Есть ли способ рассказать R: посмотреть на каждый элемент в An, найти совпадение в LK $ Strn и заменить An на LK $ String?
Так начало результирующего списка будет
[[1]]
[1] "a" "b" "c"
[[2]]
[1] "a" "c" "b"
Очевидно, что полный результирующий список будет иметь тот же размер, как An.
Я попытался match()
, но я должен делать что-то не так ...
Любая помощь будет принята с благодарностью.
можно упростить эту функцию в общем случае, как: 'lapply (An, функция (х) буквы [х])'. Или здесь, 'lapply (An, function (x) String [x])' – Arun
@Arun очень приятно. Хотелось бы, чтобы я подумал об этом, но он зависит от a = 1, b = 2 и т. Д., Всегда являясь истинным. (что, вероятно, есть). –
да действительно. он работает для этой * конкретной * проблемы. – Arun