我正在处理一个初学者的案例研究,我已经在R中上传了相关数据。但是当我检查多列中的数据类型时出现了一个问题。
我希望将字符格式更改为3列数字,即:
1)开始时间
2)结束时间
3)行驶_长度
最初,我成功地转换了格式,但收到了一个错误- NA 's by conforcement。我还尝试更改CSV文件的格式并再次上传,但这不起作用。您能帮助我纠正这个问题吗?
我附上了一张截图供您考虑。
问候你,沙纳瓦斯
根据堆栈溢出中的一个查询的说明,我使用了以下代码:
cols.num <- c("started_at","ended_at","ride_length")
jan_2022[cols.num] <- sapply(jan_2022[cols.num], as.numeric)
sapply(jan_2022,class)
summary(jan_2022)
它确实将数据类型更改为数字,但我收到了一个错误- NA 's by conforcement. Screenshot
编辑:共享数据供您参考。
structure(list(ride_id = c("C2F7DD78E82EC875", "A6CF8980A652D272",
"BD0F91DFF741C66D", "CBB80ED419105406", "DDC963BFDDA51EEA"),
rideable_type = c("electric_bike", "electric_bike", "classic_bike",
"classic_bike", "classic_bike"), started_at = c("1/13/2022 11:59",
"1/10/2022 8:41", "1/25/2022 4:53", "1/4/2022 0:18", "1/20/2022 1:31"
), ended_at = c("1/13/2022 12:02", "1/10/2022 8:46", "1/25/2022 4:58",
"1/4/2022 0:33", "1/20/2022 1:37"), start_station_name = c("Glenwood Ave & Touhy Ave",
"Glenwood Ave & Touhy Ave", "Sheffield Ave & Fullerton Ave",
"Clark St & Bryn Mawr Ave", "Michigan Ave & Jackson Blvd"
), start_station_id = c("525", "525", "TA1306000016", "KA1504000151",
"TA1309000002"), end_station_name = c("Clark St & Touhy Ave",
"Clark St & Touhy Ave", "Greenview Ave & Fullerton Ave",
"Paulina St & Montrose Ave", "State St & Randolph St"), end_station_id = c("RP-007",
"RP-007", "TA1307000001", "TA1309000021", "TA1305000029"),
start_lat = c(42.0128005, 42.012763, 41.92560188, 41.983593,
41.87785), start_lng = c(-87.665906, -87.6659675, -87.65370804,
-87.669154, -87.62408), end_lat = c(42.01256012, 42.01256012,
41.92533, 41.961507, 41.88462107), end_lng = c(-87.67436712,
-87.67436712, -87.6658, -87.671387, -87.62783423), member_casual = c("casual",
"casual", "member", "casual", "member"), ride_length = c("0:02:57",
"0:04:21", "0:04:21", "0:14:56", "0:06:02"), day_of_week = c(5L,
2L, 3L, 3L, 5L)), row.names = c(NA, 5L), class = "data.frame")
1条答案
按热度按时间aiqt4smr1#
通过您提供的数据,我可以看到列
started_at
、ended_at
和ride_length
实际上表示日期和时间,它们在R中不能很好地表示为数字,而是具有特殊的类。有一个简单的方法可以从一开始就做到这一点:
如果您使用的是RStudio,您可以通过图形界面读取数据,该界面允许您事先手动设置列的数据类型。
要打开此界面,请转到文件-〉导入数据集-〉从文本(readr)...
然后您可以点击“浏览”按钮选择您的
.csv
文件。预览显示后,您应该能够从对应列名正下方的下拉菜单中选择所需的数据类型。在您的情况下,您应该为
started_at
和ended_at
选择“DateTime”格式,为ride_length
选择“Time”格式。在右下角,代码是自动生成的。你可以复制它,将它包含在你的脚本中,从而使这个过程可以重复。
背景信息
NA
在文本数据不能自动转换为您选择的类型时生成。这可能是正确的行为,并且非常有用。但是,如果您认为该位置不应出现NA,则可能是由于: