在 data.frame 中对变量使用粘贴函数不起作用
using paste function on variable in data.frame doesn't work
我正在处理一个让我大吃一惊的错误。
我从 soundcloud 中分离了一些数据的 user_id 并删除了重复项。
现在我正在尝试使用 paste0 函数,这样我就可以获得有关单独用户的信息。
step3 <- paste0("'http://api.soundcloud.com/users/", user_id, "?client_id=0ab2657a7e5b63b6dbc778e13c834e3d'")
返回消息
Error: object 'user_id' not found.
现在我正在尝试各种不同的方法来绕过粘贴功能,虽然我可以尝试制作一个“手工制作”的数据框,如下所示:
participant <- c(1:4)
user_id <- c(199647167, 199647179, 146469660, 128223886)
df <- data.frame(participant, user_id)
现在它整齐地返回了:
[1] "'http://api.soundcloud.com/users/199647167?client_id=0ab2657a7e5b63b6dbc778e13c834e3d'"
[2] "'http://api.soundcloud.com/users/199647179?client_id=0ab2657a7e5b63b6dbc778e13c834e3d'"
[3] "'http://api.soundcloud.com/users/146469660?client_id=0ab2657a7e5b63b6dbc778e13c834e3d'"
[4] "'http://api.soundcloud.com/users/128223886?client_id=0ab2657a7e5b63b6dbc778e13c834e3d'”
正是我想要的!但在“真实”数据框上它不起作用。
我尝试了各种方法,例如将数据复制到新的 DF、重命名列、清除工作 space 等等。
我附上了一个包含用户 ID 的 .Rda 文件。任何人都可以理解它吗?
对于您的第一次调用,user_id
不作为变量存在,因此 return 是一个错误:
step3 <- paste0("'http://api.soundcloud.com/users/", user_id, "?client_id=0ab2657a7e5b63b6dbc778e13c834e3d'")
Error: object 'user_id' not found.
现在如下:
participant <- c(1:4) #participant exits
user_id <- c(199647167, 199647179, 146469660, 128223886) #participant exits, user_id exists
df <- data.frame(participant, user_id) #participant exits, user_id exists, df exists
在第 2 行中,您定义了一个矢量 user_id
,它现在位于命名空间中。将其分配给 data.frame 不会将其删除
然后您再次 运行 您的代码:
step3 <- paste0("'http://api.soundcloud.com/users/", user_id, "?client_id=0ab2657a7e5b63b6dbc778e13c834e3d'")
它从您的环境中提取 user_id
变量(向量,而不是 data.frame 列)。要同时了解其工作原理,请在 df <-
行之后尝试 运行ning rm(user_id)
,然后尝试 运行ning paste0
调用。它应该 return 一个错误,因为你清除了向量。
要改用 data.frame,您必须进行子集化。语法为:
paste0("'http://api.soundcloud.com/users/", df$user_id, "?client_id=0ab2657a7e5b63b6dbc778e13c834e3d'")
#or
paste0("'http://api.soundcloud.com/users/", df[,"user_id"], "?client_id=0ab2657a7e5b63b6dbc778e13c834e3d'")
#or
paste0("'http://api.soundcloud.com/users/", df[["user_id"]], "?client_id=0ab2657a7e5b63b6dbc778e13c834e3d'")
取决于您想要的 return 类型
我正在处理一个让我大吃一惊的错误。 我从 soundcloud 中分离了一些数据的 user_id 并删除了重复项。 现在我正在尝试使用 paste0 函数,这样我就可以获得有关单独用户的信息。
step3 <- paste0("'http://api.soundcloud.com/users/", user_id, "?client_id=0ab2657a7e5b63b6dbc778e13c834e3d'")
返回消息
Error: object 'user_id' not found.
现在我正在尝试各种不同的方法来绕过粘贴功能,虽然我可以尝试制作一个“手工制作”的数据框,如下所示:
participant <- c(1:4)
user_id <- c(199647167, 199647179, 146469660, 128223886)
df <- data.frame(participant, user_id)
现在它整齐地返回了:
[1] "'http://api.soundcloud.com/users/199647167?client_id=0ab2657a7e5b63b6dbc778e13c834e3d'"
[2] "'http://api.soundcloud.com/users/199647179?client_id=0ab2657a7e5b63b6dbc778e13c834e3d'"
[3] "'http://api.soundcloud.com/users/146469660?client_id=0ab2657a7e5b63b6dbc778e13c834e3d'"
[4] "'http://api.soundcloud.com/users/128223886?client_id=0ab2657a7e5b63b6dbc778e13c834e3d'”
正是我想要的!但在“真实”数据框上它不起作用。 我尝试了各种方法,例如将数据复制到新的 DF、重命名列、清除工作 space 等等。 我附上了一个包含用户 ID 的 .Rda 文件。任何人都可以理解它吗?
对于您的第一次调用,user_id
不作为变量存在,因此 return 是一个错误:
step3 <- paste0("'http://api.soundcloud.com/users/", user_id, "?client_id=0ab2657a7e5b63b6dbc778e13c834e3d'")
Error: object 'user_id' not found.
现在如下:
participant <- c(1:4) #participant exits
user_id <- c(199647167, 199647179, 146469660, 128223886) #participant exits, user_id exists
df <- data.frame(participant, user_id) #participant exits, user_id exists, df exists
在第 2 行中,您定义了一个矢量 user_id
,它现在位于命名空间中。将其分配给 data.frame 不会将其删除
然后您再次 运行 您的代码:
step3 <- paste0("'http://api.soundcloud.com/users/", user_id, "?client_id=0ab2657a7e5b63b6dbc778e13c834e3d'")
它从您的环境中提取 user_id
变量(向量,而不是 data.frame 列)。要同时了解其工作原理,请在 df <-
行之后尝试 运行ning rm(user_id)
,然后尝试 运行ning paste0
调用。它应该 return 一个错误,因为你清除了向量。
要改用 data.frame,您必须进行子集化。语法为:
paste0("'http://api.soundcloud.com/users/", df$user_id, "?client_id=0ab2657a7e5b63b6dbc778e13c834e3d'")
#or
paste0("'http://api.soundcloud.com/users/", df[,"user_id"], "?client_id=0ab2657a7e5b63b6dbc778e13c834e3d'")
#or
paste0("'http://api.soundcloud.com/users/", df[["user_id"]], "?client_id=0ab2657a7e5b63b6dbc778e13c834e3d'")
取决于您想要的 return 类型