データフレームには、コンマで区切られた回答を含む列(タイプ:chr)があります。文字列のサイズとアワードポイントに基づいて別の列を作成したいと思います。たとえば、列のエントリの一部は次のとおりです。
列
1word1、word2、word3
word1、word2
word1
ここで、最初のセルについて、セルのサイズを3と評価する必要があります(3つの異なる単語が含まれており、セル値に重複がないため)。どうすればこれを達成できるかわかりません。
オプションが持つ列を分割することですstrsplit
へlist
のvector
、sの取得unique
をループで要素をlist
とlapply
し、取得lengths
df1$Size <- lengths(lapply(strsplit(df1$Column1, ",\\s*"), unique))
別のオプションはseparate_rows
からですtidyr
library(dplyr)
library(tidyr)
df1 %>%
mutate(rn = row_number()) %>%
separate_rows(Column1) %>%
group_by(rn) %>%
summarise(Size = n_distinct(Column1), .groups = 'drop') %>%
select(Size) %>%
bind_cols(df1, .)
-出力
# Column1 Size
#1 word1,word2,word3 3
#2 word1,word2 2
#3 word1 1
df1 <- data.frame(Column1 = c('word1,word2,word3', 'word1,word2', 'word1'))
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加