Как добавить заголовок в набор данных в R?
Мне нужно прочитать "wdbc.data" в следующей папке с данными:
http://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/
Выполнение этого в R легко с помощью команды read.csv, но поскольку заголовок отсутствует, как я могу его добавить? У меня есть информация, но я не знаю, как это сделать, и я бы предпочел не редактировать файл данных.
Ответы
Ответ 1
Вы можете сделать следующее:
Загрузите данные:
test <- read.csv(
"http://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data",
header=FALSE)
Обратите внимание, что значение по умолчанию для аргумента header
для read.csv
равно TRUE
, поэтому для того, чтобы получить все строки, вам нужно установить его на FALSE
.
Добавить имена в разные столбцы в файле data.frame
names(test) <- c("A","B","C","D","E","F","G","H","I","J","K")
или альтернатива и быстрее, чем я понимаю (не перезагружая весь набор данных):
colnames(test) <- c("A","B","C","D","E","F","G","H","I","J","K")
Ответ 2
Вы также можете использовать colnames
вместо имен, если у вас есть data.frame
или matrix
Ответ 3
Если вы заинтересованы в чтении некоторых данных из файла .txt
и извлекаете только несколько столбцов этого файла в новый файл .txt
с настраиваемым заголовком, может пригодиться следующий код:
# input some data from 2 different .txt files:
civit_gps <- read.csv(file="/path2/gpsFile.csv",head=TRUE,sep=",")
civit_cam <- read.csv(file="/path2/cameraFile.txt",head=TRUE,sep=",")
# assign the name for the output file:
seqName <- "seq1_data.txt"
#=========================================================
# Extract data from imported files
#=========================================================
# From Camera:
frame_idx <- civit_cam$X.frame
qx <- civit_cam$q.x.rad.
qy <- civit_cam$q.y.rad.
qz <- civit_cam$q.z.rad.
qw <- civit_cam$q.w
# From GPS:
gpsT <- civit_gps$X.gpsTime.sec.
latitude <- civit_gps$Latitude.deg.
longitude <- civit_gps$Longitude.deg.
altitude <- civit_gps$H.Ell.m.
heading <- civit_gps$Heading.deg.
pitch <- civit_gps$pitch.deg.
roll <- civit_gps$roll.deg.
gpsTime_corr <- civit_gps[frame_idx,1]
#=========================================================
# Export new data into the output txt file
#=========================================================
myData <- data.frame(c(gpsTime_corr),
c(frame_idx),
c(qx),
c(qy),
c(qz),
c(qw))
# Write :
cat("#GPSTime,frameIdx,qx,qy,qz,qw\n", file=seqName)
write.table(myData, file = seqName,row.names=FALSE,col.names=FALSE,append=TRUE,sep = ",")
Конечно, вы должны изменить этот пример сценария на основе вашего собственного приложения.