ベストアンサー
データフレームで列を分割する方法
> 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からデータをエクスポートする直前の最後のステップとしてこれを実行してください。
ありがとうございます!