我的R环境中有10个向量。我想粘贴此向量以创建数据框。我使用了rbind
函数,但是我认为效率很低,因为我必须在函数中键入所有变量。问题是,我可以使用paste0
或paste
函数或类似的其他函数来粘贴此向量吗?谢谢。
#Por ejemplo
x1 <- c(1, 2)
x2 <- c(3, 4)
x3 <- c(5, 6)
x4 <- c(7, 8)
x5 <- c(9, 10)
x6 <- c(11, 12)
x7 <- c(13, 14)
x8 <- c(15, 16)
x9 <- c(17, 18)
x10 <- c(19, 30)
rbind(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)
我想使用rbind
或paste0
之类的功能粘贴不带paste
的向量。
答案 0 :(得分:5)
当参数是一个列表并且该函数所期望的项目只是矢量时,# Initialise a client
storage_client = storage.Client("[Your project name here]")
# Create a bucket object for our bucket
bucket = storage_client.get_bucket(bucket_name)
# Create a blob object from the filepath
blob = bucket.blob("folder_one/foldertwo/filename.extension")
# Download the file to a destination
blob.download_to_filename(path_to_gcs_file)
with open(path_to_gcs_file, "rb" as f:
train_df = = pickle.load(f)
函数很有用。由于返回列表的do.call
是尝试从字符名称转换为对象名称时的自然工具,因此您可以尝试:
mget
或使用do.call(rbind, mget(paste0("x", 1:10)))
#---
[,1] [,2]
x1 1 2
x2 3 4
x3 5 6
x4 7 8
x5 9 10
x6 11 12
x7 13 14
x8 15 16
x9 17 18
x10 19 30
matrix
答案 1 :(得分:0)
ls()
返回环境中所有变量名的向量。如果对每个以 x 开头的变量名进行正则表达式,则可以遍历新的向量,并get()
调用该名称的变量。如果在get
函数中调用lapply
,则将获得所有被调用变量的列表。 do.call()
对列表中的每个项目执行功能。
to_get <- ls()[grepl('^x', ls())]
to_bind <- lapply(to_get, get)
final_matrix <- do.call(rbind, to_bind)