如何用R语言标记一列变量中大于前一个变量10%的数,比如用虚拟变量1标记

Python05

如何用R语言标记一列变量中大于前一个变量10%的数,比如用虚拟变量1标记,第1张

#这里我假设你的数据是test,是一个框架数据

dimoftest <- dim(test) # 获取数据维数

factoftest <- c() #定义factor数组

k <- 2 #定义你的那个变量的列k,你自己设定

#循环找出k列大于k-1列10%的序号,并将factor数组设为1,否则为0

for(i in 1:dimoftest){

if((test[i,k]- test[i,k-1])/test[i,k-1] >0.1) factoftest[i] = 1

else factoftest[i] = 2

}

factoftest #显示数组

#创建一个factor因子,标记为1,2,文本也设为1,2

newfactor <- factor(factoftest,levels = c(1,2), labels = c("1","2"))

#合并到数据中

test <- data.frame(test, newfactor)

#查看

test

不明白的话继续问

你可以用EXCEL中的“自动筛选”功能。选中数据第一行,按工具栏中的“数据-筛选-自动筛选”,就会在数据第一行出现下拉框,点中它,从下拉框中选“自定义”,会出现一个对话框,在这个对话框的左边框中选“包含”,右边框中填上“公园”(不要引号),确定后就把所有含有“公园”的数据筛选出来了,其他的会自动隐藏。同理,在“包含”的右边框中填上“门店”,就会把所有含有“门店”的数据筛选出来。