データフレームのリストがあります。各データフレームで一意の行を見つけて、その一意のデータフレームのリストを1つの新しいデータフレームに出力したいと思います。
で始まります y <- list(mtcars[,c(2,4)], iris[,4:5])
まず、各データフレーム内の列の名前を変更します
colnames <- c("colA", "colB")
y <- lapply(y, setNames, colnames)
一意の行を個別に見つけるには、次を使用できます
y1 <- unique(y[[1]])
y2 <- unique(y[[2]])
しかしもちろん、私のデータフレームのリストははるかに大きいので、これを最大100個のデータフレームのリスト全体に適用したいと思います。これどうやってするの?試しましlapply
たが、エラーが発生します。
上記のダミーデータはエラーをスローします:
unique [[x]]のエラー:タイプ 'closure'のオブジェクトはサブセット化できません
そして私の実際のデータはエラーをスローします:
mydf [[x]]のエラー:無効な添え字タイプ 'リスト'
プロセスの最後のステップである、すべてを1つの大きなデータフレームに入れることは、rbind
呼び出しであることを知っています(個別に:rbind(y1,y2)
、しかし、rbind
最大100個のデータフレームのリストを実行する方法もわかりません(現在、重複していない行しかない)。 )
リスト内の各要素に適用してunique
から、を使用do.call
してデータフレームを結合します。
result <- do.call(rbind, lapply(y, unique))
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加