1

私は R をいじっていましたが、今ではすべてが私を逃れたようです。. .

数百列と約10万行のテーブルがあります。これらの列の 1 つに、コンマが含まれることがある文字列が含まれています (例: ニワトリ、ヤギ、ウシ、または単にニワトリ)。新しい列を作成できる(私が信じている)forループを備えたスクリプトが必要です(新しい列コードをforループに入れてはいけません)、コンマの数(または問題の列のエントリ数)を数えます1 つ少ない) 1 つ追加して、各列にいくつのエントリがあるかを調べます。例:

col
chicken
chicken,goat
cow,chicken,goat
cow

スクリプトで、テーブルに次のような追加の列を作成する必要があります。. .

col2
1
2
3
1
4

3 に答える 3

7

私はcount.fields(ベースRから)使用します:

mydf$col2 <- count.fields(file = textConnection(as.character(mydf$col)), 
                          sep = ",")
mydf
#                col col2
# 1          chicken    1
# 2     chicken,goat    2
# 3 cow,chicken,goat    3
# 4              cow    1

更新: 空白行の説明

count.fieldsには論理引数がありますblank.lines.skip。したがって、空行の情報を取得するには、それを に設定するだけTRUEです。

例:

mydf <- data.frame(col = c("chicken", "", "chicken,goat", "cow,chicken,goat", "cow"))

count.fields(file = textConnection(as.character(mydf$col)), 
             sep = ",", blank.lines.skip=FALSE)
# [1] 1 0 2 3 1
于 2013-09-18T20:06:39.610 に答える