我正在學習學生和做頂點作業。這是我的代碼的一部分。
for(i in divvy_trips){
trip<-get(i)
if ("starttime" %in% names(trip)){
trip$starttime <- as.character(trip$starttime)
trip$stoptime <- as.character(trip$stoptime)
get(i) <- trip
在這段代碼中,我想在包含資料幀的 divvy_trips 中使用并將某些列固定為字符并重新創建相同名稱的資料幀。但
get(i) <- 旅行
不作業。所以我需要一些幫助來實作這個目標,但是另一種方法。
uj5u.com熱心網友回復:
它不是作為解決方案,而是作為提示(因為我無法真正理解您要實作的目標):您的最后一行應該是assign(i, trip)(或類似的)而不是get(i) <- trip.
uj5u.com熱心網友回復:
如果您的資料結構確實是這樣的 data.frames 串列
trip_1 <- data.frame(a = 1:10, b = 11:20)
trip_2 <- data.frame(a = 91:100, starttime = 1:10, stoptime = 11:20)
divvy_trip <- list(trip_1 = trip_1, trip_2 = trip_2)
你可以lapply用來解決你的問題:
divvy_trip <- lapply(divvy_trip,
function(dat) {
if ("starttime" %in% names(dat)) {
dat$starttime <- as.character(dat$starttime)
dat$stoptime <- as.character(dat$stoptime)
}
dat
}
)
這將 data.frame的starttimeandstoptime列更改trip_2為字符:
class(divvy_trip[["trip_2"]][["starttime"]])
#> [1] "character"
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/343063.html
