0
リストの複数の特定の列を変更しようとしています。私はいくつかの行(特に2,3,5,6)のすべての値を同じ値にしたいと思います。すなわち、列内の値は各行について同じである。私はこれでリスト内の各データフレームにゼロと列を追加することができています(0)特定の列のデータフレームのリストに適用する
ゼロのにNAのから列4と7を変更したい:
lapply(df1, function(x) cbind(x,replace(x$efficiency, is.na(x$efficiency), "0")))
私がしようとしてきました
lapply(df1, na.locf,df1$Receiver)
周りの仕事としてではなく、ほとんど進んでサンプルデータ: これを使用します
df1<-list(structure(list(dt15 = structure(c(1457929800, 1457930700,
1457931600, 1457932500, 1457933400, 1457934300), class = c("POSIXct",
"POSIXt"), tzone = ""), Receiver = c(480432, 480432, NA, NA,
NA, NA), Code = c(62431, 62431, NA, NA, NA, NA), detections = c(6,
1, NA, NA, NA, NA), distance = c(168.948559873358, 168.948559873358,
NA, NA, NA, NA), Repeat_Rate = c(90L, 90L, NA, NA, NA, NA), efficiency = c("60",
"10", NA, NA, NA, NA)), .Names = c("dt15", "Receiver", "Code",
"detections", "distance", "Repeat_Rate", "efficiency"), row.names = 635:640, class = "data.frame"),
structure(list(dt15 = structure(c(1457956800, 1457957700,
1457958600, 1457959500, 1457960400, 1457961300, 1457962200,
1457963100), class = c("POSIXct", "POSIXt"), tzone = ""),
Receiver = c(480422, 480422, NA, NA, NA, NA, 480422,
480422), Code = c(62427, 62427, NA, NA, NA, NA, 62427,
62427), detections = c(2, 2, NA, NA, NA, NA, 1, 3), distance = c(301.8128773339,
301.8128773339, NA, NA, NA, NA, 301.8128773339, 301.8128773339
), Repeat_Rate = c(90L, 90L, NA, NA, NA, NA, 90L, 90L
), efficiency = c("20", "20", NA, NA, NA, NA, "10", "30"
)), .Names = c("dt15", "Receiver", "Code", "detections",
"distance", "Repeat_Rate", "efficiency"), row.names = 665:672, class = "data.frame"))
所望の出力:
list(structure(list(dt15 = structure(c(1457929800, 1457930700,
1457931600, 1457932500, 1457933400, 1457934300), class = c("POSIXct",
"POSIXt"), tzone = ""), Receiver = c(480432, 480432, 480432,
480432, 480432, 480432), Code = c(62431, 62431, 62431, 62431,
62431, 62431), detections = c(6, 1, 0, 0, 0, 0), distance = c(168.948559873358,
168.948559873358, 168.948559873358, 168.948559873358, 168.948559873358,
168.948559873358), Repeat_Rate = c(90L, 90L, 90L, 90L, 90L, 90L
), efficiency = c("60", "10", "0", "0", "0", "0")), .Names = c("dt15",
"Receiver", "Code", "detections", "distance", "Repeat_Rate",
"efficiency"), row.names = 635:640, class = "data.frame"), structure(list(
dt15 = structure(c(1457956800, 1457957700, 1457958600, 1457959500,
1457960400, 1457961300, 1457962200, 1457963100), class = c("POSIXct",
"POSIXt"), tzone = ""), Receiver = c(480422, 480422, 480422,
480422, 480422, 480422, 480422, 480422), Code = c(62427,
62427, 62427, 62427, 62427, 62427, 62427, 62427), detections = c(2,
2, 0, 0, 0, 0, 1, 3), distance = c(301.8128773339, 301.8128773339,
301.8128773339, 301.8128773339, 301.8128773339, 301.8128773339,
301.8128773339, 301.8128773339), Repeat_Rate = c(90L, 90L,
90L, 90L, 90L, 90L, 90L, 90L), efficiency = c("20", "20",
"0", "0", "0", "0", "10", "30")), .Names = c("dt15", "Receiver",
"Code", "detections", "distance", "Repeat_Rate", "efficiency"
), row.names = 665:672, class = "data.frame"))