小编Car*_*rdy的帖子

R dplyr:在列中查找特定值,然后使用该值替换右侧后续列中的相邻单元格

我正在尝试创建一个站点和事件时间矩阵.在我的情况下,一旦事件发生("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)

r apply lapply sapply dplyr

5
推荐指数
1
解决办法
438
查看次数

R lapply():将列表中所有数据框中的所有列更改为数字,然后将所有值转换为百分比

题:

我对如何为数据框列表中的列批量处理 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)

r lapply

5
推荐指数
1
解决办法
2819
查看次数

标签 统计

lapply ×2

r ×2

apply ×1

dplyr ×1

sapply ×1