我一直在撞墙试图解决这个问题。为了避免for循环,我想将已经有值的列归零。
以下是列表l:
中的数据片段[[1]]
name team bye fpts
1 Arian Foster Hou 7 315
2 Adrian Peterson Min 4 233
3 Jamaal Charles KC 4 225
4 Peyton Hillis Cle 8 223
5 Chris Johnson Ten 9 218
[[2]]
name team bye fpts
1 Ray Rice Bal 5 287
2 LeSean McCoy Phi 7 271
3 Maurice Jones-Drew Jax 9 250
4 Arian Foster Hou 11 241
5 Michael Turner Atl 8 205
[[3]]
name team bye fpts
1 Adrian Peterson Min 11 299
2 Arian Foster Hou 8 250
3 Doug Martin TB 5 249
4 Marshawn Lynch Sea 11 236
5 Alfred Morris Was 10 233
以下是我要执行的代码
ldims = length(l) # where l is a 7 dimension list
# clear out all fpts values
for(i in 1:ldims)
{
l[[i]][, 4] = 0.0 # for all elements in column 4, assign it zero
}
这就是我想要完成的事情:
[[1]]
name team bye fpts
1 Arian Foster Hou 7 0
2 Adrian Peterson Min 4 0
3 Jamaal Charles KC 4 0
4 Peyton Hillis Cle 8 0
5 Chris Johnson Ten 9 0
[[2]]
name team bye fpts
1 Ray Rice Bal 5 0
2 LeSean McCoy Phi 7 0
3 Maurice Jones-Drew Jax 9 0
4 Arian Foster Hou 11 0
5 Michael Turner Atl 8 0
[[3]]
name team bye fpts
1 Adrian Peterson Min 11 0
2 Arian Foster Hou 8 0
3 Doug Martin TB 5 0
4 Marshawn Lynch Sea 11 0
5 Alfred Morris Was 10 0
我所做的是遍历列表的维度并将0应用于整个列。这有效但R看起来很笨重(我来自C语言背景)。我觉得应该可以通过apply
或lapply
来实现这一目标。
答案 0 :(得分:0)
复制数据结构,用mtcars替换内部data.frame:
df <- dplyr::bind_rows(L, .id="group")
首先将列表转换为具有新变量的单个data.frame&#34; group&#34;指示原始列表元素。
0.0
然后,您只需将列设置为df$mpg <- 0.0
:
df <- mutate(df, mpg=0.0)
或者使用dplyr:
group
使用单个data.frame有助于执行大多数常见任务/分析。您可以使用dplyr
列轻松进行分组分析(例如使用group_by
summarize
和from w3lib.url import url_query_cleaner
...
....
def parse_cat(self, response):
links = LinkExtractor().extract_links(response)
for link in links:
url = url_query_cleaner(link.url, ('param2',))
if '/category/' in url:
yield response.follow(url, self.parse_cat)
if '/product/' in url:
yield response.follow(url, self.parse_prod)
。