for (i in dates) { # n为循环次数 df_name <- paste0("日期_", i) # 生成数据框名称 assign(df_name, subset(zd_tb,日期 == i)) # 创建空数据框并赋值给名称为df_name的变量 for (j in 7:20) { df_name1 <- paste0(i,"钟点", j) # 生成数据框名称 assign(df_name1, subset(df_name, 钟点 == j)) assign(df_name1, subset(zd_tb, 钟点 == j & 日期 == i) %>% arrange(desc(工作量)) %>% mutate( value = nrow(df_name1):1) ) } }有错误吗
时间: 2024-01-29 20:04:42 浏览: 64
这段代码有几个潜在的问题:
1. `dates` 变量没有定义,需要先定义 `dates` 变量。
2. `df_name1` 变量在循环内部被重新定义,但在循环外部没有重新定义,这可能会导致变量名重复,从而出现错误。
3. 在 `assign(df_name1, subset(df_name, 钟点 == j))` 这一行中,应该使用 `df_name` 变量而不是 `zd_tb` 变量。
4. 在 `assign(df_name1, subset(zd_tb, 钟点 == j & 日期 == i) %>% arrange(desc(工作量)) %>% mutate( value = nrow(df_name1):1) )` 这一行中,`nrow(df_name1)` 应该改为 `nrow(get(df_name1))`,因为此时我们需要获取变量 `df_name1` 中的行数。
下面是修改后的代码:
```
dates <- unique(zd_tb$日期)
for (i in dates) {
df_name <- paste0("日期_", i)
assign(df_name, subset(zd_tb,日期 == i))
for (j in 7:20) {
df_name1 <- paste0(i,"钟点", j)
assign(df_name1, subset(df_name, 钟点 == j))
assign(df_name1, subset(df_name, 钟点 == j & 日期 == i) %>% arrange(desc(工作量)) %>% mutate( value = nrow(get(df_name1)):1) )
}
}
```
希望对你有所帮助!
阅读全文