我正在努力解决一个让我大吃一惊的错误。 我从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,重命名列,清理工作空间等等。 我附上了一个带有用户ID的.Rda文件。任何人都可以理解它吗?
答案 0 :(得分:1)
对于您的第一个电话,user_id
不作为变量存在,因此会返回错误:
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列)。要了解其原因,请尝试在rm(user_id)
行之后运行df <-
,然后尝试运行paste0
调用。它应该返回一个错误,因为你清除了向量。
要使用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'")
取决于您想要的返回类型