R 如何在变量中插入值?

R 如何在变量中插入值?,r,dataframe,R,Dataframe,我需要从文件路径中获取一个basename并将其插入变量中,这样我就可以访问数据帧中的一列。我创建了一些示例数据来说明我试图实现的目标 创建一些示例数据: library(raster) ## Create a matrix with random data & use image() xy = matrix(rnorm(400),20,20) image(xy) # Turn the matrix into a raster rast = raster(xy) # Give

我需要从文件路径中获取一个basename并将其插入变量中,这样我就可以访问数据帧中的一列。我创建了一些示例数据来说明我试图实现的目标

创建一些示例数据:

library(raster)    
## Create a matrix with random data & use image()
xy = matrix(rnorm(400),20,20)
image(xy)

# Turn the matrix into a raster
rast = raster(xy)
# Give it lat/lon coords for 36-37°E, 3-2°S
extent(rast) = c(36,37,-3,-2)
# ... and assign a projection
projection(rast) = CRS("+proj=longlat +datum=WGS84")
plot(rast)

# Write to disk:
writeRaster(rast, "C:/temp/12345.tif", format = "tif")
创建光栅的路径

path = 'C:/temp/12345.asc
创建光栅对象:

r = raster(file)
采样数据框中光栅中的随机位置和报告值

df = data.frame(sampleRandom(r, size=1000, cells=TRUE, sp=TRUE))
现在,我需要自动将basename插入变量,使其看起来像:

test = df$X12345

这是我在将basename插入测试变量时失败的尝试:

require(tools)
name = basename(file_path_sans_ext(path))
test2 = paste('df$', 'X', name, sep = '')

>test2
[1] "df$X12345"
尽管我无法通过调用
test2
来访问数据帧,但该方法似乎创建了一个正确的字符“df$X12345”如何将一系列字符构造成一个功能变量,以便访问特定的数据帧列?

test=df[,paste0('X',name)]


这就是你要找的吗?

也许你要找的是
parse
eval

df <- data.frame(a = 1, b = 2)
test2 <- "df$b"
eval(parse(text = test2))
# [1] 2
df相关: