在 R shiny 中访问登录名
access logged in name in R shiny
我想在 R shiny 中访问用户名(a.k.a。我登录 windows 机器时输入的用户名)。
这是我的ui.r:
shinyUI(pageWithSidebar(
sidebarPanel(
#sliderInput("n", "Number of plots", value=1, min=1, max=5)
),
mainPanel(
verbatimTextOutput("user")
)
))
这是我的 server.r:
shinyServer(function(input, output,session) {
output$user <- renderText({
paste(sep = "",
"protocol: ", session$clientData$url_protocol, "\n",
"hostname: ", session$clientData$url_hostname, "\n",
"pathname: ", session$clientData$url_pathname, "\n",
"port: ", session$clientData$url_port, "\n",
"user: ", session$user, "\n"
)
})
})#end of server
你可以看到我正在尝试使用 session$user
但是当我 运行 我在页面底部看到这个
protocol: http:
hostname: 127.0.0.1
pathname: /
port: 5616
user:
所以用户是空白的。
你知道我如何访问我用来登录 Windows 机器的登录名吗?
目前还不清楚你的 shiny 怎么样 运行 以及你指的是哪个用户。但是,您可以使用以下方式访问 windows 中的用户名:
Sys.getenv()["USERNAME"]
@user3022875 Sys.getenv
on USERNAME 以上将适用于 Windows,但不是所有机器。您可能希望及时在 shinyapps.io 或其他服务器上托管您的应用程序。
我写这个脚本是为了帮助我,因为我的一个用户在 Linux 机器上。我还从帮助文件中注意到 Unix 机器可能需要 LOGNAME.
GetUserName <- function() {
# Returns user name of computer with twist for Unix
# Args
# none
# Returns
# string of user login name
x <- Sys.info()[["user"]]
# if blank try other methods
if (is.null(x) | x == "") {
# On windows machines
Sys.getenv("USERNAME")
} else {
# from helpfiles for Unix
Sys.getenv("LOGNAME")
}
# Could get something but it is unknown error
if (identical(x, "unknown")) {
warning("unknown returned")
}
return(x)
}
您可以将此功能添加到您的 server.R 或 global.R。希望这有帮助。
您可以试试:
Sys.getenv()["USERNAME"][[1]]
或
Sys.getenv("USERNAME")
这样肯定会输出Windows登录名。如果你想把它包装成一个函数,你可以使用以下内容:
user_name <- function() {
return(Sys.getenv()["USERNAME"][[1]])
### or return(Sys.getenv("USERNAME"))
}
我想在 R shiny 中访问用户名(a.k.a。我登录 windows 机器时输入的用户名)。
这是我的ui.r:
shinyUI(pageWithSidebar(
sidebarPanel(
#sliderInput("n", "Number of plots", value=1, min=1, max=5)
),
mainPanel(
verbatimTextOutput("user")
)
))
这是我的 server.r:
shinyServer(function(input, output,session) {
output$user <- renderText({
paste(sep = "",
"protocol: ", session$clientData$url_protocol, "\n",
"hostname: ", session$clientData$url_hostname, "\n",
"pathname: ", session$clientData$url_pathname, "\n",
"port: ", session$clientData$url_port, "\n",
"user: ", session$user, "\n"
)
})
})#end of server
你可以看到我正在尝试使用 session$user
但是当我 运行 我在页面底部看到这个
protocol: http:
hostname: 127.0.0.1
pathname: /
port: 5616
user:
所以用户是空白的。
你知道我如何访问我用来登录 Windows 机器的登录名吗?
目前还不清楚你的 shiny 怎么样 运行 以及你指的是哪个用户。但是,您可以使用以下方式访问 windows 中的用户名:
Sys.getenv()["USERNAME"]
@user3022875 Sys.getenv
on USERNAME 以上将适用于 Windows,但不是所有机器。您可能希望及时在 shinyapps.io 或其他服务器上托管您的应用程序。
我写这个脚本是为了帮助我,因为我的一个用户在 Linux 机器上。我还从帮助文件中注意到 Unix 机器可能需要 LOGNAME.
GetUserName <- function() {
# Returns user name of computer with twist for Unix
# Args
# none
# Returns
# string of user login name
x <- Sys.info()[["user"]]
# if blank try other methods
if (is.null(x) | x == "") {
# On windows machines
Sys.getenv("USERNAME")
} else {
# from helpfiles for Unix
Sys.getenv("LOGNAME")
}
# Could get something but it is unknown error
if (identical(x, "unknown")) {
warning("unknown returned")
}
return(x)
}
您可以将此功能添加到您的 server.R 或 global.R。希望这有帮助。
您可以试试:
Sys.getenv()["USERNAME"][[1]]
或
Sys.getenv("USERNAME")
这样肯定会输出Windows登录名。如果你想把它包装成一个函数,你可以使用以下内容:
user_name <- function() {
return(Sys.getenv()["USERNAME"][[1]])
### or return(Sys.getenv("USERNAME"))
}