我正在嘗試根據指定資料框中列的物件將資料呼叫到新資料框。
這是一個可重現的示例,表明我無法達到目標結果:
dataframe1 <- data.frame('first' = seq(1:5),
'second' = letters[seq(1:5)])
specifcdata1 <- 'dataframe1[first]'
specifcdata2 <- 'dataframe1$second'
dataframe2 <- data.frame('Specific 1' = tail(specifcdata1, 1),
'Specific 2' = tail(specifcdata2, 1))
導致:
> dataframe2
Specific.1 Specific.2
1 dataframe1[first] dataframe1$second
目標結果是:
> dataframe2
Specific.1 Specific.2
1 5 e
考慮到dataframe1,
> dataframe1
first second
1 1 a
2 2 b
3 3 c
4 4 d
5 5 e
問題:我們如何呼叫物件(資料,而不是存盤的字符)?
uj5u.com熱心網友回復:
You are looking for the combination of parse() and eval(). I also added quotation marks in 'dataframe1["first"]' or else in would not have worked.
dataframe1 <- data.frame('first' = seq(1:5),
'second' = letters[seq(1:5)])
specifcdata1 <- 'dataframe1["first"]'
specifcdata2 <- 'dataframe1$second'
dataframe2 <- data.frame('Specific 1' = tail(eval(parse(text = specifcdata1)), 1),
'Specific 2' = tail(eval(parse(text = specifcdata2)), 1))
dataframe2
#> first Specific.2
#> 5 5 e
Created on 2022-03-30 by the reprex package (v2.0.1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/453453.html
