0

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]
)
4

1 に答える 1