R连接后保留数据帧属性
我希望在一些连接之后保留数据帧属性。似乎R连接后保留数据帧属性,r,dplyr,R,Dplyr,我希望在一些连接之后保留数据帧属性。似乎dplyr函数保存列的属性,但不保存数据帧本身的属性 请参见下面的示例: library("dplyr") library("lubridate") #Fake data n = 20 df <- data.frame("user_id" = 1:n, "type" = sample(c(1,2), n, replace = T), "amount" = 1000*rnorm(n
dplyr
函数保存列的属性,但不保存数据帧本身的属性
请参见下面的示例:
library("dplyr")
library("lubridate")
#Fake data
n = 20
df <- data.frame("user_id" = 1:n,
"type" = sample(c(1,2), n, replace = T),
"amount" = 1000*rnorm(n))
#Suppose I want to add some metadata
attr(df, "query_timestamp") <- lubridate::now()
attr(df$amount, "currency") <- "BRL"
#encoding table for user type
encode <- data.frame("type" = c(1,2),
"description" = c("vendor", "shopper"))
print(attr(df, "query_timestamp"))
[1] “BRL”
[1] “BRL”
有什么原因吗?我希望保留属性,但避免使用辅助变量来存储它们。您可以使用attr%来“重新附加”属性
`attr打印(attr(df,“查询时间戳”))
[1] “2018-07-18 14:41:39太平洋时报”
通常情况下,呼叫将是以下之一:
`attr(df, "query_timestamp") <- attr(df,"query_timestamp") )
# or equivalently
`attr<-`(df, "query_timestamp", attr(df,"query_timestamp") )
`attr(df,“query\u timestamp”)您可以使用attr%来“重新附加”属性
`attr打印(attr(df,“查询时间戳”))
[1] “2018-07-18 14:41:39太平洋时报”
通常情况下,呼叫将是以下之一:
`attr(df, "query_timestamp") <- attr(df,"query_timestamp") )
# or equivalently
`attr<-`(df, "query_timestamp", attr(df,"query_timestamp") )
`attr(df,“query_timestamp”)?now
返回:“在指定的包和库中没有“now”的文档:您可以尝试“now”。对不起now()
来自lubridate
package。修复了它,谢谢。?now
返回:“在指定的包和库中没有关于'now'的文档:您可以尝试'?'now'”很抱歉now()
来自lubridate
package。修复了,谢谢。您可以使用属性
这是矢量化染料,但它将是属性您可以使用属性
这是矢量化染料,但它将是属性
print(attr(df$amount, "currency"))
df <- df %>% dplyr::left_join(encode, by = "type") %>%
`attr<-`("query_timestamp", attr(df,"query_timestamp") )
> print(attr(df, "query_timestamp"))
[1] "2018-07-18 14:41:39 PDT"
`attr(df, "query_timestamp") <- attr(df,"query_timestamp") )
# or equivalently
`attr<-`(df, "query_timestamp", attr(df,"query_timestamp") )