r - signo - simbolo del peso
Signo de dólar antes de una variable (4)
Tengo este código de muestra para crear un nuevo marco de datos ''new_data'' del marco de datos existente ''my_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]))
}
}
El problema es que my_data$cond
(donde cond es una variable, y no el nombre de la columna) no se acepta.
¿Cómo puedo llamar a una columna de un marco de datos usando, después del signo de dólar, un valor variable?
A menudo querrá seleccionar una columna completa, es decir, una variable específica de un marco de datos. Si desea seleccionar todos los elementos del diámetro variable, por ejemplo, ambos harán el truco:
dataframe_name[,column_position]
dataframe_name[,"column_name"]
Sin embargo, hay un atajo. Si sus columnas tienen nombres, puede usar el signo $
:
dataframe_name$column_name
Para acceder a una columna, use:
my_data[ , cond]
o
my_data[[cond]]
La i
ésima fila se puede acceder con:
my_data[i, ]
Combine ambos para obtener el valor deseado:
my_data[i, cond]
o
my_data[[cond]][i]
Supongo que necesitas get()
.
Por ejemplo,
get(x,list)
, donde list
es la lista y x
es la variable (puede ser una cadena), que es igual a list$x
.
Pero en get(x,list)
, x
puede ser una variable mientras se usa $
, x
no puede ser una variable.
$
funciona en columnas, no en objetos de columna individuales. Es una forma de vectorización. El código
corrections$BookDate = as.Date(corrections$BookDate, format = "%m/%d/%Y")
Convierte los contenidos de la columna BookDate
de la tabla de corrections
de cadenas a objetos Date
. Lo realiza en una operación, asignación.
Haga lo siguiente y solucionará su problema:
new_data <- rbind(new_data, c(cond, my_data$cond))