データフレームを(人間が)より読みやすい形式に変換しようとしています。現在のデータフレーム(DF1)には、列Aに文字列(質問)のリスト、列Bに文字列(カテゴリ)のリストが含まれています。アイテムが複数のカテゴリに該当する場合、DF1のさらに下に同じ行があります。列Aに質問がありますが、列Bに別のカテゴリがあります。
例えば
column1 column2 Column3
"question 1" "category A" "subcategory A"
"question 2" "category A" "subcategory B"
"question 1" "category B" "subcategory A"
データフレームを変換して質問を作成し、列Bのカテゴリを列ヘッダーとして使用します。ブール値は、質問がそのカテゴリに該当するかどうかを示します。
例えば
Question CategoryA CategoryB
"question 1" TRUE TRUE
"question 2" TRUE FALSE
以下を使用して、DF1から固有の質問のリストを抽出しました。
question <- list()
for (x in DF1$column1){
if (!(x %in% question)){
question[[x]] <- x
}
}
Rでこれを行うための最良の方法は何ですか?これはRで非常に非効率になる可能性があると思うので、可能であれば一連のネストされたループを避けたいと思いますか?
どうもありがとう!!
このようなことはトリックをしますか
library(dplyr)
library(tidyr)
column1 <- c(
"question 1",
"question 2" ,
"question 1" )
column2 <- c(
"category A" ,
"category A" ,
"category B" )
column3 <- c(
"subcategory A",
"subcategory B",
"subcategory A")
df <- data.frame(column1, column2, column3, stringsAsFactors = FALSE)
dfwide <- df %>%
select(-column3) %>%
mutate(col4 = TRUE) %>%
spread(column1, col4, fill= FALSE)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加