имеют большой df, который я разделил на список dfs по уровню определенного col. Я пытаюсь перебрать указанный список dfs, получая доступ к одному и тому же col в каждом df, применяя get_nrc_sentiment () fn ко всем строкам текстовых данных в вышеупомянутом col в каждом df.
library(syuzhet)
# create example df
df <- data.frame("a"=c(1:3, 1, 1),
"b"=c("bad", "angry", "joy", "happy", "unhappy"))
df
df_split <- split(df, df$a)
df_split # split df by a into list of dfs
# iterate over col data in each df within
# list of dfs and apply sentiment function
for(i in 1:length(df_split)){
df2 <- lapply(as.vector(df_split[[i]]$b), function(x) get_nrc_sentiment(x))
}
# for some reason only works for last df within list of dfs
df2
# desired output, but for each df col within list
df3 <- get_nrc_sentiment(as.vector(df_split[[1]]$b))
df3
# output of df
a b
1 1 bad
2 2 angry
3 3 joy
4 1 happy
5 1 unhappy
# output of df_split
$`1`
a b
1 1 bad
4 1 happy
5 1 unhappy
$`2`
a b
2 2 angry
$`3`
a b
3 3 joy
# output of code within for loop
[[1]]
anger anticipation disgust fear joy sadness surprise trust negative positive
1 0 0 0 0 1 0 0 0 0 1
# output of df3, desired output example for each df within list
anger anticipation disgust fear joy sadness surprise trust negative positive
1 1 0 1 1 0 1 0 0 1 0
2 0 1 0 0 1 0 0 1 0 1
3 1 0 1 0 0
Как вы можете надеяться, вы видите, что это работает только на последнем df в списке dfs, а не на всех df в списке dfs. Возможно, я ошибаюсь в цикле for, я также пытался использовать lapply внутри lapply, но у меня нет других идей о том, как получить доступ к col в каждом df из списка dfs. Очень признателен за помощь и надеюсь, что приведенные мной примеры достаточно ясны.