我正在尝试创建一个站点和事件时间矩阵.在我的情况下,一旦事件发生("1"),它是永久性的,不能回到"0".一旦列中的单元格为"1",我将尝试使用"1"填充右侧后续列中的相邻单元格(请参阅下面的示例).
site <- c('A','B','C','D','E','F','G') #site
time <- c(0,1,4,0,3,2,0) # time in which even occured
event <- c(0,1,1,0,1,1,0) # did a event occur
data <- data.frame(site, time, event)
site.time.matrix <- cast(data, site~time)
# This is the output # This is the desired output
#site 0 1 2 3 4 #site 0 1 2 3 4
# A 0 NA NA NA NA # A 0 0 0 0 0
# B NA 1 NA NA NA # B 0 1 1 …Run Code Online (Sandbox Code Playgroud) 题:
我对如何为数据框列表中的列批量处理 as.numeric() (或任何其他函数)感到有些困惑。
我知道我可以使用以下方法查看此列表中的特定数据框或列:
> my.list[[1]]
# or columns within this data frame using:
> my.list[[1]][1]
Run Code Online (Sandbox Code Playgroud)
但是当我尝试将其应用于 lapply() 函数以将所有数据从整数更改为数字时,我的麻烦就来了。
# Example of what I am trying to do
> my.list[[each data frame in list]][each column in data frame] <-
as.numberic(my.list[[each data frame in list]][each column in data frame])
Run Code Online (Sandbox Code Playgroud)
如果您能以任何方式帮助我,或者知道任何可以帮助我的资源,我将不胜感激。
背景:
我的数据框的结构如下例所示,其中我有 5 种栖息地类型以及有关单个物种家庭范围扩展到n 的面积的信息:
# Example data
spp.1.data <- data.frame(Habitat.A = c(100,45,0,9,0), Habitat.B = c(0,0,203,45,89), Habitat.C = c(80,22,8,9,20), Habitat.D = c(8,59,77,83,69), Habitat.E = c(23,15,99,0,10))
Run Code Online (Sandbox Code Playgroud)
我有多个具有上述结构的数据框,它们已分配给列表对象:
all.spp.data <- …Run Code Online (Sandbox Code Playgroud)