我有一个字符串("00010000"),需要确定我们看到第一个"1"的位置.(这告诉我客户哪个月有效)
我有一个如下所示的数据集:
id <- c(1:5)
seq <- c("00010000","00001000","01000000","10000000","00010000")
df <- data.frame(id,seq)
Run Code Online (Sandbox Code Playgroud)
我想为每个id创建一个标识first_month_active的新字段.
我可以使用嵌套的ifelse函数手动执行此操作:
df$first_month_active <-
ifelse(substr(df$seq,1,1)=="1",1,
ifelse(substr(df$seq,2,2)=="1",2,
ifelse(substr(df$seq,3,3)=="1",3,
ifelse(substr(df$seq,4,4)=="1",4,
ifelse(substr(df$seq,5,5)=="1",5,99 )))))
Run Code Online (Sandbox Code Playgroud)
这给了我想要的结果:
id seq first_position
1 00010000 4
2 00001000 5
3 01000000 2
4 10000000 1
5 00010000 4
Run Code Online (Sandbox Code Playgroud)
但是,对于包含36个月的数据,这不是理想的解决方案.
我想使用带有ifelse语句的循环,但是我真的很难用语法
for (i in 1:36) {
ifelse(substr(df$seq,0+i,0+i)=="1",0+i,
}
Run Code Online (Sandbox Code Playgroud)
任何想法将不胜感激
如何在不更改格式的情况下重命名SQLDF中的日期字段?
请参阅下面的示例,其中我的重命名日期字段"dt"将日期转换为数字.我该如何避免这种情况,或将其转换回日期?
#Question for Stack Exchange
df <- data.frame (date = c("2014-12-01","2014-12-02","2014-12-03"),
acct = c(1,2,3))
df$date = as.Date(df$date)
library("sqldf")
sqldf('
select
date as dt,
date,
acct
from df ')
dt date acct
1 16405 2014-12-01 1
2 16406 2014-12-02 2
3 16407 2014-12-03 3
Run Code Online (Sandbox Code Playgroud) 如何在R中分配宏变量?
在SAS中,我将使用以下代码
%LET DEPVAR = sales_ind
PROC REG DATA=mydata;
MODEL &DEPVAR = VAR1 + VAR2;
RUN;
Run Code Online (Sandbox Code Playgroud)
然而,在R中,我正在努力做类似的事情(这不起作用)
depvar <<- sales_ind
reg<-lm(depvar ~ var1 + var2, data=mydata)
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
谢谢!
我想应用一个循环来从R中的多个网页中抓取数据.我能够抓取一个网页的数据,但是当我尝试使用多个页面的循环时,我得到一个令人沮丧的错误.我花了几个小时修补,但没有用.任何帮助将不胜感激!!!
这有效:
###########################
# GET COUNTRY DATA
###########################
library("rvest")
site <- paste("http://www.countryreports.org/country/","Norway",".htm", sep="")
site <- html(site)
stats<-
data.frame(names =site %>% html_nodes(xpath="//*/td[1]") %>% html_text() ,
facts =site %>% html_nodes(xpath="//*/td[2]") %>% html_text() ,
stringsAsFactors=FALSE)
stats$country <- "Norway"
stats$names <- gsub('[\r\n\t]', '', stats$names)
stats$facts <- gsub('[\r\n\t]', '', stats$facts)
View(stats)
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试在循环中写入它时,我收到一个错误
###########################
# ATTEMPT IN A LOOP
###########################
country<-c("Norway","Sweden","Finland","France","Greece","Italy","Spain")
for(i in country){
site <- paste("http://www.countryreports.org/country/",country,".htm", sep="")
site <- html(site)
stats<-
data.frame(names =site %>% html_nodes(xpath="//*/td[1]") %>% html_text() ,
facts =site %>% html_nodes(xpath="//*/td[2]") %>% html_text() , …Run Code Online (Sandbox Code Playgroud) 我想在R中定义一个可以在函数和sqldf语句中使用的全局变量.我的目标是在我的代码顶部更改我想要包含的变量 - 并在整个过程中使用它.这真的可以节省我的时间,而且我一直无法通过搜索论坛找到解决方案.
# define variable
myvar <<- as.name('cyl')
# use within a sql statement
library("sqldf")
sqldf('
select
avg(myvar)
from
mtcars
')
# use within a regression
reg<-lm(mpg ~ myvar, data=mtcars)
summary(reg)
Run Code Online (Sandbox Code Playgroud)