gpt4 book ai didi

R中的Python zip模式

转载 作者:行者123 更新时间:2023-11-28 21:50:00 25 4
gpt4 key购买 nike

如何在 R 中对类容器做这样的事情:

class Env(object):
pass
env = Env()

我想使用(类似 python 的)zip 模式添加实例属性:

medias_name = ("myprint", "ooh", "tv", "digital")
medias_img = ("Print.png", "Ooh.png", "Tv.png", "Digital.png")

for name, value in zip(medias_name, medias_img):
setattr(env, name, value)

env.digital, env.myprint, env.ooh, env.tv
>>> ('Digital.png', 'Print.png', 'Ooh.png', 'Tv.png')

最佳答案

您可以像这样使用 data.frame 模拟 python zip::

medias_name <- c("print", "ooh", "tv", "digital")
medias_img <- c("Print.png", "Ooh.png", "Tv.png", "Digital.png")

myenv <- new.env()
zip_df <- data.frame(name=medias_name, img=medias_img, stringsAsFactors=F)
for (i in 1:nrow(zip_df)){
myenv[[zip_df[i, 'name']]] <- zip_df[i, 'img']
}

所以我们得到::

> zip_df
name img
1 print Print.png
2 ooh Ooh.png
3 tv Tv.png
4 digital Digital.png

> ls(myenv)
[1] "digital" "ooh" "print" "tv"

> myenv$tv
[1] "Tv.png"
>

另一种解决方案是使用列表模拟 zip 来打包项目::

medias_name <- c("print", "ooh", "tv", "digital")
medias_img <- c("Print.png", "Ooh.png", "Tv.png", "Digital.png")

myenv <- new.env()
ziplist <- list(medias_name, medias_img)
for (i in 1:length(ziplist[[1]])){
name <- ziplist[[1]][i]
img <- ziplist[[2]][i]
myenv[[name]] <- img
}

关于R中的Python zip模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32498764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com