R


ベストアンサー

データフレームで列を分割する方法

> data

Manufacturers

1 Audi,RS5

2 BMW,M3

3 Cadillac,CTS-V

4 Lexus,ISF

したがって、このようにメーカーとモデルを分割したいと思います。

> data

Manufacturers Models

1 Audi RS5

2 BMW M3

3 Cadillac CTS-V

4 Lexus ISF

library(qdap);

colsplit2df(data ,, c( “Manufacturer”、 “Model”)、 “、”)

または

use split() by tidyr パッケージ

Separate(DataTable、ColumnName、into =”“、sep =””)

または

区切り文字に基づいて、データフレーム内で1つの列を2つに分割したいと思います。たとえば、

a|b

b|c

になる

a b

b c

データフレーム内。

df <- data.frame(ID=11:13, FOO=c("a|b", "b|c", "x|y"))

separate(data = df, col = FOO, into = c("left", "right"), sep = "\\|")

ID left right

1 11 a b

2 12 b c

3 13 x y

ただし、この場合、デフォルトは十分にスマートです。 (分割する英数字以外の文字を探します。)

または

separate(data = df, col = FOO, into = c("left", "right"))

library(reshape2)

before = data.frame(attr = c(1,30,4,6), type=c("foo\_and\_bar","foo\_and\_bar\_2"))

newColNames <- c("type1", "type2")

newCols <- colsplit(before$type, "\_and\_", newColNames)

after <- cbind(before, newCols)

after$type <- NULL

after

回答

こんにちはアシュトッシュ

ありますRで列名を変更または名前変更する方法はいくつかありますが、要件によって異なります。

1.データフレーム内の列の名前を変更する-これは最初の列から始まり、指定した名前がなくなるまで続きます。たとえば、データフレームに8つの列があり、2つの名前しか指定しない場合、最初の2つの列のみの名前が変更されます。

構文:

names(data) <- c("new\_name", "another\_new\_name")

2。名前を使用して列の名前を変更し、名前を適用する列を識別します。

構文:

colnames(data)[colnames(data)=="old\_name"] <- "new\_name"

3。列番号を使用して列の名前を変更し、名前を適用する列を識別します。次のコードは、データフレームデータの3番目の列の名前をnew\_nameに変更します。

構文:

names(data)[3]<-"new\_name"

注:Rを使用すると、フィールドにスペースを付けて名前を付けることができますが、名前を変更した後、その列を簡単に参照することはできません。表示のために列名を読みやすくする必要がある場合は、Rからデータをエクスポートする直前の最後のステップとしてこれを実行してください。

ありがとうございます!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です