作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个数据框 (df),其中包含 CA、VT、NC、AZ、CAvalue、VTvalue、NCvalue、AZvalue 等变量。
在Stata中,我可以使用foreach
命令和 generate
新变量:
foreach x in CA VT NC AZ {
gen `x'1 = 0
replace `x'1 = 1 if `x'value > 1
}
x=c("CA","VT","NC","AZ")
x_1=paste(x,"1",sep="")
m1=as.data.frame(matrix(0,ncol=length(x),nrow=NROW(df)))
colnames(m1)=x_1
df=as.data.frame(matrix(runif(200,1,150),ncol=8,nrow=25))
name=c("CA","VT","NC","AZ","CAtime","VTtime", "NCtime","AZtime")
colnames(df)=name
x=c("CA","VT","NC","AZ")
x_1=paste(x,"1",sep="")
m1=as.data.frame(matrix(0,ncol=length(x),nrow=NROW(df)))
colnames(m1)=x_1
最佳答案
举个例子数据集df
,符合您的描述:
set.seed(1)
x <- c("CA","VT","NC","AZ")
df <- setNames(data.frame(replicate(8,sample(0:2,5,replace=TRUE),simplify=FALSE)),
c("CA","VT","NC","AZ","CAvalue","VTvalue","NCvalue","AZvalue"))
df
# CA VT NC AZ CAvalue VTvalue NCvalue AZvalue
#1 0 2 0 1 2 1 1 2
#2 1 2 0 2 0 0 1 2
#3 1 1 2 2 1 1 1 0
#4 2 1 1 1 0 2 0 2
#5 0 0 2 2 0 1 2 1
lapply
检查是否值
> 1
跨每一列,并使用
1
将其重新分配给新变量附加到最后:
df[paste0(x,"1")] <- lapply(df[paste0(x,"value")], function(n) as.numeric(n > 1) )
df
# CA VT NC AZ CAvalue VTvalue NCvalue AZvalue CA1 VT1 NC1 AZ1
#1 0 2 0 1 2 1 1 2 1 0 0 1
#2 1 2 0 2 0 0 1 2 0 0 0 1
#3 1 1 2 2 1 1 1 0 0 0 0 0
#4 2 1 1 1 0 2 0 2 0 1 0 1
#5 0 0 2 2 0 1 2 1 0 0 1 0
关于r - 如何将Stata中的foreach转换为R?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28424377/
我是一名优秀的程序员,十分优秀!