R 变量前的美元符号

R 变量前的美元符号,r,dataframe,r-faq,dollar-sign,R,Dataframe,R Faq,Dollar Sign,我用这个示例代码从现有的数据框“my_data”创建一个新的数据框“new_data” new_data = NULL n = 10 #this number correspond to the number of rows in my_data conditions = c("Bas_A", "Bas_T", "Oper_A", "Oper_T") # the vector characters correspond to the target column names in my_data

我用这个示例代码从现有的数据框“my_data”创建一个新的数据框“new_data”

new_data = NULL
n = 10 #this number correspond to the number of rows in my_data
conditions = c("Bas_A", "Bas_T", "Oper_A", "Oper_T") # the vector characters correspond to the target column names in my_data
for (cond in conditions){
    for (i in 1:n){
        new_data <- rbind(new_data, c(cond, my_data$cond[i]))
    }
}
new_data=NULL
n=10#此数字对应于my#u数据中的行数
conditions=c(“基本”、“基本”、“操作”、“操作”)#矢量字符对应于my#u数据中的目标列名
用于(条件中的条件){
for(1:n中的i){

新数据要访问列,请使用:

my_data[ , cond]

可通过以下方式访问
i
th行:

my_data[i, ]
将两者结合起来以获得所需的值:

my_data[i, cond]

我想你需要
get()

例如,
get(x,list)
,其中
list
是列表,
x
是变量(可以是字符串),它等于
list$x


但是在
get(x,list)
中,
x
在使用
$
时可以是变量,
x
不能是变量。

$
作用于列,而不是单个列对象。这是一种向量化形式。代码

corrections$BookDate = as.Date(corrections$BookDate, format = "%m/%d/%Y")
corrections
表的
BookDate
列的内容从字符串转换为
Date
对象。它通过一个操作,即赋值,来执行此操作

执行以下操作将解决您的问题:

new_data <- rbind(new_data, c(cond, my_data$cond))

new\u data
$
并非真正用于编程。它旨在方便交互使用。请尝试使用
mydata[i,cond]
相反。但是,看看你的代码,我认为你可能会受益于
重塑
函数,或者实际上是
重塑2
包……注意
我的数据
是一个
数据。框架
新数据
是一个
矩阵
。我们不能使用
c$列
,其中
c
是一个矩阵吗?我在c$col1中得到了
错误:$运算符对原子向量无效
。@Mahesha999您不能将
$
用于矩阵。出于好奇,例如,如果我们想利用
$
提供的支持的部分匹配,我们不能使用类似
'$'(数据,某物(cond))的东西吗
有些函数是我不完全理解的一个或多个函数,如.symbol
as.expression
quote
enquote
substitute
等。我想在数据帧中添加106列,这些列是数据帧的长度,但用0填充。我如何循环这个呢(i矢量){df$i
corrections$BookDate = as.Date(corrections$BookDate, format = "%m/%d/%Y")
new_data <- rbind(new_data, c(cond, my_data$cond))