Как добавить заголовок в набор данных в R? - программирование
Подтвердить что ты не робот

Как добавить заголовок в набор данных в R?

Мне нужно прочитать "wdbc.data" в следующей папке с данными: http://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/

Выполнение этого в R легко с помощью команды read.csv, но поскольку заголовок отсутствует, как я могу его добавить? У меня есть информация, но я не знаю, как это сделать, и я бы предпочел не редактировать файл данных.

4b9b3361

Ответ 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 = ",")

Конечно, вы должны изменить этот пример сценария на основе вашего собственного приложения.