babynames私は 5 文字より長い名前とライブラリから5 文字より短い名前の両方の数を詳述するデータフレームを持っていinstall.packages("babynames")ますlibrary(babynames)。
いくつかのフィルタリングとifelseを使用した後str_length(name)、次のようなデータフレームを作成しました。
sum_greaterthan5.sum sum_lessthan5.sum total_n_names.total_names
2109449 1436852 3546301
データを収集して、1 つの変数/列を、5 文字を超える名前の赤ちゃんの数を表す数値にすることができるようにしたいと考えています。
criteria count
sum_greaterthan5.sum 2109449
sum_lessthan5.sum 1436852
total_n_names.total_names 3546301
ただし、gather関数は私の列を正しく読み取っていません:
> df_5letters <- df %>%
+ gather(key=criteria, value = count, c('sum_greaterthan5.sum', 'sum_lessthan5.sum', 'total_n_names.sum') )
Error: Can't subset columns that don't exist.
x Column `sum_greaterthan5.sum` doesn't exist.
列のインデックスを使用しようとしたところ、型に関連するエラーが発生しました。の代わりに使用できる他の関数gather、または関数を変更できる別の方法はありgatherますか?
以下は、この時点までに実行したコードです。
babynames_2017_length_5 <- babynames_2017 %>%
mutate(five_letters = ifelse(str_length(name)>5,1,0)) %>%
filter(five_letters == 1) %>%
summarise(sum = sum(n))
babynames_2017_less_5 <- babynames_2017 %>%
mutate(five_letters = ifelse(str_length(name)>5,1,0)) %>%
filter(five_letters == 0) %>%
summarise(sum = sum(n))
df <- tibble(
sum_greaterthan5 = babynames_2017_length_5,
sum_lessthan5 = babynames_2017_less_5,
total_n_names = total_n # total_n was a variable that I got from a previous dataframe that I did a sum aggregation on with:
# total_n <- babynames_startwvowels[1,1]
)