2017-10-16 99 views
1

我一直在使用來自UCI Machine Learning Repository的數據集。一些數據集,如this one,包含a file,擴展名爲.c45-names,看起來機器可讀。從名稱文件中自動導入R中的列名稱

有沒有辦法使用這些數據自動命名數據框中的列,或者甚至更好地使用其他元數據,如數據類型或離散變量的可能值?

目前,我複製/粘貼列名成這樣一行代碼:

names(cars) = c('buying', 'maint', 'doors', 'persons', 'lug_boot', 'safety', 'rating') 

它會很好,如果有更多的東西自動化,谷歌搜索迄今一直效果不佳,因爲有一個這是一個在河

回答

1
car.c45_names <- readLines("https://archive.ics.uci.edu/ml/machine-learning-databases/car/car.c45-names") 
tmp <- car.c45_names[grep(":", car.c45_names)] #grab lines containing ":" 
colname_car.c45 <- sub(':.*', '', tmp) #replace all characters after ":" with ""; thanks to alistaire's for pointing out  
# colname_car.c45 <- sapply(tmp, function(x)substring(x, 1, gregexpr(":", x)[[1]]-1)) 
cars <- setNames(cars, colname_car.c45) #same as 'names(cars) <- colname_car.c45' 
+0

已經實現你可以做'colname_car.c45 <類似名稱的分類算法 - 子( ':*', '',TMP)' – alistaire

+0

感謝您指出。我在上面的答案中插入了它。 –