我有一个员工数据库,其中包含经理的ID,长格式(每个员工每月一行).我想添加一个包含其经理的经理ID(或他们的跳过级别经理的ID)的列.
这是一个玩具数据集:
id <- c(seq.int(1,11), seq.int(2,12))
mgr_id <- as.integer(c(NA, 1, 1, 2, 2, 2, 2, 3, 3, 5, 5, #period 1
NA, 2, 5, 2, 5, 5, 3, 3, 5, 10, 10)) #period 2
period <- c(rep(1, 11), rep(2, 11))
left_company <- c(1, rep(0, 21))
joined_company <- c(rep(0, 21), 1)
df <- data.frame(id, mgr_id, period, left_company, joined_company)
Run Code Online (Sandbox Code Playgroud)
这是我写的一个函数,它返回预期的结果.
# finds the employee's manager in the correct period, and returns that manager's id
get_mgr_mgr_id <- function(manager_id, period){
mgr_mgr_id <- df$mgr_id[df$id == …Run Code Online (Sandbox Code Playgroud) 根据我对Hadley关于构建S3对象的建议的阅读,我使用了辅助函数,构造函数和验证器函数.一个简单的可重复的例子:
test_object <- function(x, y, z) {
new_test_object(x, y, z)
}
new_test_object <- function(x, y, z) {
structure(list(x = x,
y = y,
z = z,
x_name = deparse(substitute(x))),
class = "test_object")
}
validate_test_object <- function(test_object) {
# Anything goes
test_object
}
Run Code Online (Sandbox Code Playgroud)
我希望生成的对象包含一个值,该值包含传入项的原始名称($x_name在上面的示例中).deparse(substitute(...))如果我直接调用构造函数,这个技巧就有效:
alpha = "a"
test_constructor <- new_test_object(x = alpha, y = "b", z = "c")
test_constructor$x_name
# [1] "alpha"
Run Code Online (Sandbox Code Playgroud)
但是如果我使用辅助函数则不行:
test_helper <- test_object(x = alpha, y = "b", z = "c")
test_helper$x_name …Run Code Online (Sandbox Code Playgroud) 摘要:我的最终目标是使用rCharts,特别是Highcharts,作为ReporteRsPowerPoint 报告自动化工作流程的一部分。我想使用的图表之一在 Rstudio 的查看器窗格中呈现为 html,并且addPlot(function() print(myChart))不会将其添加到 PowerPoint。作为一种解决方法,我决定尝试保存myChart到磁盘,从那里我可以通过这种方式将其添加到 PowerPoint 中。
所以我的问题真的是,如何将我的 html 图像放入我的ReporteRs工作流程中?要么将其保存到磁盘,要么使其可读,ReporteRs都可以解决我的问题。
这个问题确实是一样的这一个,但我使用rCharts,特别是例如发现这里:
#if the packages are not already installed
install.packages('devtools')
require(devtools)
install_github('rCharts', 'ramnathv')
#code creates a radar chart using Highcharts
library(rCharts)
#create dummy dataframe with number ranging from 0 to 1
df<-data.frame(id=c("a","b","c","d","e"),val1=runif(5,0,1),val2=runif(5,0,1))
#muliply number by 100 to get percentage
df[,-1]<-df[,-1]*100
myChart <- Highcharts$new()
myChart$chart(polar = TRUE, type …Run Code Online (Sandbox Code Playgroud) 我试图将多个数据帧收集到一个变量中,但我在Python中遇到这个问题时遇到了麻烦.
我试图在R中执行的代码如下
df1 <- data.frame()
df2 <- data.frame()
my_collection <- list(my_df1 = df1, my_df2 = df2)
Run Code Online (Sandbox Code Playgroud)
这使我可以做很好的事情,比如根据名称调用个人数据框(例如my_collection[["my_df1"]]).
问题是我无法在Python中找到允许我将它们组合成可搜索的单个变量的解决方案.我对Python的术语有点困惑,因此很难指向正确的方向.
任何能够结合起来的帮助将非常感激!谢谢!