У меня есть фрейм данных с множеством столбцов с тегами слов, например:
tags <- c("NN0", "VVZ", "CJS")
df <- data.frame(
tag1 = c(sample(tags, 10, replace = T)),
tag2 = c(sample(tags, 10, replace = T)),
tag3 = c(sample(tags, 10, replace = T)),
tag4 = c(sample(tags, 10, replace = T))
)
df
tag1 tag2 tag3 tag4
1 CJS NN0 VVZ CJS
2 VVZ NN0 NN0 VVZ
3 NN0 NN0 NN0 NN0
4 CJS NN0 VVZ VVZ
5 CJS NN0 NN0 CJS
6 VVZ CJS CJS CJS
7 CJS NN0 VVZ NN0
8 VVZ VVZ VVZ NN0
9 NN0 NN0 NN0 NN0
10 VVZ VVZ VVZ NN0
Что я хотел бы сделать, это вычислить пропорции тегов на столбец. Использование вложений lapply()
и table()
внутри prop.table()
дает мне нужные пропорции, но при этом также сохраняются исходные столбцы с тегами (см. Столбцы 1,3,5,7):
prop <- as.data.frame(lapply(df,
function(x)
prop.table(table(x))*100))
prop
tag1.x tag1.Freq tag2.x tag2.Freq tag3.x tag3.Freq tag4.x tag4.Freq
1 CJS 40 CJS 10 CJS 10 CJS 30
2 NN0 20 NN0 70 NN0 40 NN0 50
3 VVZ 40 VVZ 20 VVZ 50 VVZ 20
Как я могу настроить код так, чтобы результат был просто пропорции?