首页 > 解决方案 > 警告消息:缺少的列已填写

问题描述

data.frame我有一个文本文件,我使用以下代码将其转换为:

library(auk)
practice_ebd <- "bar-tailed_godwit-2000-2020.txt" %>% read_ebd()

带有此警告消息:

警告消息:缺少填写的列名:'X47' [47]

这是什么意思,我应该担心吗?

输出代码示例:

structure(list(checklist_id = "S53530969", global_unique_identifier = "URN:CornellLabOfOrnithology:EBIRD:OBS720726875", 
last_edited_date = "2020-04-09 23:16:21", taxonomic_order = 5822, 
category = "species", common_name = "Bar-tailed Godwit", 
scientific_name = "Limosa lapponica", observation_count = "12", 
breeding_bird_atlas_code = NA_character_, breeding_bird_atlas_category = NA_character_, 
age_sex = NA_character_, country = "Taiwan", country_code = "TW", 
state = "Chiayi County", state_code = "TW-CYQ", county = NA_character_, 
county_code = NA_character_, iba_code = NA_character_, bcr_code = NA_integer_, 
usfws_code = NA_character_, atlas_block = NA_character_, 
locality = "<U+5609><U+7FA9><U+9C32><U+9F13><U+6FD5><U+5730>IBA--<U+5168><U+5340>(Aogu Wetland IBA)(New)", 
locality_id = "L3980078", locality_type = "H", latitude = 23.5004231, 
longitude = 120.1357877, observation_date = structure(11210, class = "Date"), 
time_observations_started = "07:45:00", observer_id = "obsr1073600", 
sampling_event_identifier = "S53530969", protocol_type = "Historical", 
protocol_code = "P62", project_code = "EBIRD", duration_minutes = 225L, 
effort_distance_km = NA_real_, effort_area_ha = NA_real_, 
number_observers = NA_integer_, all_species_reported = TRUE, 
group_identifier = NA_character_, has_media = FALSE, approved = TRUE, 
reviewed = FALSE, reason = NA_character_, trip_comments = "(CWBF uploading notes: reporter:<U+76E7><U+51A0><U+5B89> <U+89C0><U+5BDF><U+65B9><U+6CD5>:<U+6B77><U+53F2><U+7D00><U+9304> fid=34420)", species_comments = "8<U+590F><U+7FBD>"), row.names = c(NA, -1L), class = c("tbl_df", "tbl", "data.frame"), rollup = TRUE)

标签: rwarnings

解决方案


我相信你的包正在使用readr::read_delim()函数来读取文本文件。该警告意味着它在数据中看到了 47 列,但没有看到所有 47 列的列标题用作列名。您提供的示例数据只有 45 列,均已命名,因此您的程序包可能会删除额外的列作为其工作的一部分。

有几种方法可以获得此错误,包括:

  1. 根据您的文件准备,您有额外的空列。(例如,Excel 可以在文件中放置额外的列。)
  2. 您的字符串列并不总是被适当地分隔/引用,因此有些行看起来像是有额外的列。

我会readr::read_delim()直接读取您的文件,并检查结果以查看是否需要进一步清理工作。不是一个完整的答案,但希望它可以帮助您指出正确的方向。


推荐阅读