#use readtable to create data frames of following unzipped files below
x.train <- read.table("UCI HAR Dataset/train/X_train.txt")
subject.train <- read.table("UCI HAR Dataset/train/subject_train.txt")
y.train <- read.table("UCI HAR Dataset/train/y_train.txt")
x.test <- read.table("UCI HAR Dataset/test/X_test.txt")
subject.test <- read.table("UCI HAR Dataset/test/subject_test.txt")
y.test <- read.table("UCI HAR Dataset/test/y_test.txt")
features <- read.table("UCI HAR Dataset/features.txt")
activity.labels <- read.table("UCI HAR Dataset/activity_labels.txt")
colnames(x.test) <- features[,2]
dataset_test <- cbind(subject.test,y.test,x.test)
colnames(dataset_test)[1] <- "subject"
colnames(dataset_test)[2] <- "activity"
test <- select(features, V2)
dataset_test <- select(dataset_test,subject,activity)
[1] Error: Can't bind data because some arguments have the same name
-featuresは2列のデータフレームで、2列目にはx.testの名前が含まれています
-subject.testは単一列のデータフレームです
-y.testは単一列のデータフレームです
-x.testはワイドデータフレームです
これらのデータフレームに名前を付けてバインドした後、dplyr :: selectを使用して特定のフレームを選択しようとしました。
しかし、dataset_testを返すエラーが発生します
「エラー:一部の引数が同じ名前であるため、データをバインドできません」
ただし、テストはエラーを返さず、適切にフィルタリングします。
なぜ行動の違い?
私が使用しているデータは、
https://d396qusza40orc.cloudfront.net/getdata%2Fprojectfiles%2FUCI%20HAR%20Dataset.Zip
データソースは変数名に対応しますが、「。」の代わりに「_」が使用されます。
dput
> dput(head(x.test[,1:5],2))
structure(list(V1 = c(0.25717778, 0.28602671), V2 = c(-0.02328523,
-0.013163359), V3 = c(-0.014653762, -0.11908252), V4 = c(-0.938404,
-0.97541469), V5 = c(-0.92009078, -0.9674579)), row.names = 1:2, class = "data.frame")
> dput(head(subject.test,2))
structure(list(V1 = c(2L, 2L)), row.names = 1:2, class = "data.frame")
> dput(head(y.test,2))
structure(list(V1 = c(5L, 5L)), row.names = 1:2, class = "data.frame")
> dput(head(features,2))
structure(list(V1 = 1:2, V2 = c("tBodyAcc-mean()-X", "tBodyAcc-mean()-Y"
)), row.names = 1:2, class = "data.frame")
このエラーは、多くの場合、同一名の列を持つデータフレームが原因で発生します。最初に確認する必要があります。私は自分のデータフレームをdplyr選択ヘルパー関数(start_with、containsなど)でチェックしようとしていましたが、それらも機能しないため、Excelまたは他のプログラムでチェックインまたは使用するには、csvにエクスポートする必要がある場合がありますチェックする基本関数 重複する列名 。