如何在r中的for循环中动态生成列
我想在for循环中生成动态列并为其赋值。下面是我的代码如何在r中的for循环中动态生成列,r,R,我想在for循环中生成动态列并为其赋值。下面是我的代码 new_df = data.frame() for(j in 1:3) { new_df[,paste0("code_",j,sep="")] = somevalue new_df[,paste0("target_",j,sep="")] = somevalue } 当我运行上述代码时,它会给我一个错误。如何动态生成上述列 new_df = list() for(i in 1:4){
new_df = data.frame()
for(j in 1:3) {
new_df[,paste0("code_",j,sep="")] = somevalue
new_df[,paste0("target_",j,sep="")] = somevalue
}
当我运行上述代码时,它会给我一个错误。如何动态生成上述列
new_df = list()
for(i in 1:4){
for(j in 1:3){
new_df[[paste0("code_",j,sep="")]] =i
}
}
new_df = as.data.frame(new_df)
它只给我1行3列,而应该返回4行3列这个怎么样
xy <- vector("list", 3)
for (j in 1:3) {
x <- data.frame(j, j)
names(x) <- c(paste0("code_",j,sep=""), paste0("target_",j,sep=""))
xy[[j]] <- x
}
do.call(cbind, xy)
code_1 target_1 code_2 target_2 code_3 target_3
1 1 1 2 2 3 3
这个怎么样
xy <- vector("list", 3)
for (j in 1:3) {
x <- data.frame(j, j)
names(x) <- c(paste0("code_",j,sep=""), paste0("target_",j,sep=""))
xy[[j]] <- x
}
do.call(cbind, xy)
code_1 target_1 code_2 target_2 code_3 target_3
1 1 1 2 2 3 3
使用创建data.frame时
它不包含列和行
如果您现在尝试通过值向量等方式添加列,则会抱怨数据中的元素多于行。数据框:
返回
code_1 target_1 code_2 target_2 code_3 target_3
1 1 1 1 1 1 1
使用创建data.frame时
它不包含列和行
如果您现在尝试通过值向量等方式添加列,则会抱怨数据中的元素多于行。数据框:
返回
code_1 target_1 code_2 target_2 code_3 target_3
1 1 1 1 1 1 1
我认为您可以使用get/assign函数和mutate函数的组合来执行此类操作
library(plyr)
df1<-data.frame(a=1:10)
df2<-data.frame(b=11:20)
vec1<-2:11 #values to be incorporated into df1
vec2<-12:21#values to be incorporated into df2
for(j in 1:2){
assign(paste0("newdf",j),mutate(get(paste0("df",j)),k=get(paste0("vec",j))))
} #assigns df1 combined with vec1, to newdf1.
我认为您可以使用get/assign函数和mutate函数的组合来执行此类操作
library(plyr)
df1<-data.frame(a=1:10)
df2<-data.frame(b=11:20)
vec1<-2:11 #values to be incorporated into df1
vec2<-12:21#values to be incorporated into df2
for(j in 1:2){
assign(paste0("newdf",j),mutate(get(paste0("df",j)),k=get(paste0("vec",j))))
} #assigns df1 combined with vec1, to newdf1.
您需要初始化数据表,否则无法向其中添加列。因此,如果您希望数据表中有10行,那么只需添加一个包含10个零的向量,然后执行相同的操作
您需要初始化数据表,否则无法向其中添加列。因此,如果您希望数据表有10行,例如,只需添加一个10个零的向量,然后执行相同的操作请提供有关somevalue对象的信息。它将是一个整数值,可能与的重复。请提供有关somevalue对象的信息。它将是一个整数值,可能与我如何在列表中追加内容重复?它只返回从other for Loop添加的最后一个值我已经编辑了您提供的代码,但它只返回for Loop返回的最后一个值我如何在列表中追加?它只返回从其他for循环中添加的最后一个值。我编辑了您提供的代码,但它只返回for循环返回的最后一个值
library(plyr)
df1<-data.frame(a=1:10)
df2<-data.frame(b=11:20)
vec1<-2:11 #values to be incorporated into df1
vec2<-12:21#values to be incorporated into df2
for(j in 1:2){
assign(paste0("newdf",j),mutate(get(paste0("df",j)),k=get(paste0("vec",j))))
} #assigns df1 combined with vec1, to newdf1.
library(data.table)
new_df <- 0
new_df <- as.data.table(new_df)
for(j in 1:3) {
# j<-1
new_df[,paste0("code_",j):=1]
new_df[,paste0("target_",j):=2]
}