相关疑难解决方法(0)

dcast 重命名所有变量以数字开头

所以我得到的数据如下所示:

           id year principal interest
 1: 011000600 2013      0.00     0.00
 2: 011000600 2014    544.03     0.00
 3: 011000700 2013      0.00     0.00
 4: 011000700 2014      0.01     0.00
 5: 011000800 2013    363.44    12.79
 6: 011000800 2014   2005.98     0.00
 7: 011000900 2013      0.00     0.00
 8: 011000900 2014      0.00     0.00
 9: 011001000 2013      0.00     0.00
10: 011001000 2014      0.00     0.00
11: 011001100 2013      0.00     0.00
12: 011001100 2014   1723.24     0.00
13: 011001560 2013      0.00     0.00
14: 011001560 2014      0.00     0.00
15: 011001650 2013      0.00     0.00 …
Run Code Online (Sandbox Code Playgroud)

r reshape2 data.table

5
推荐指数
1
解决办法
3529
查看次数

重命名数据框中的几列:为什么不使用%in%运算符保留顺序?

这是参考这个问题.

我想重命名一个大数据框中的列子集.我希望下面的代码来重命名列X4,X5,X6X7gradek,grade1,grade2,和grade3分别为:

set.seed(1)
in.df <- data.frame( matrix( rnorm(60), ncol=10) )
names(in.df) <- ifelse( names(in.df) %in% c('X4', 'X5', 'X6', 'X7'),
                         paste('grade', c('k',1:3), sep=''),
                         names(in.df) )
Run Code Online (Sandbox Code Playgroud)

然而,

> names(in.df)
 [1] "X1"     "X2"     "X3"     "grade3" "gradek" "grade1" "grade2" "X8"    
 [9] "X9"     "X10"   
Run Code Online (Sandbox Code Playgroud)

即使

> paste('grade', c('k',1:3), sep='')
[1] "gradek" "grade1" "grade2" "grade3"
Run Code Online (Sandbox Code Playgroud)

显示订单未保留.这个线程,建议使用match而不是%in%工作,但在这种情况下它不会.(也许在其他版本的R中也是如此.在我安装的版本(2.15.3)中,帮助页面match建议%in%通过match这样定义,因此将其切换起来没有任何帮助.) …

r

4
推荐指数
1
解决办法
224
查看次数

使它成为一种功能

在SO的帮助下,我现在有一种方法可以重命名数据框中的所有变量,但选定的子集除外.我目前正在使用这种方法,请看看打击(感谢flodel).

我想编写一个函数,我可以定义1)我的数据,2)变量向量和3)我想要添加到函数中未选择的变量的前缀(参见下面的尝试).我错误地认为这很容易,但我很难让功能发挥作用.

这是我尝试编写函数,这显然不起作用.此外,如果有人会推荐一个网站或一些我可以阅读的文字,以便更好地了解如何编写功能.

baRadd <- function(df, vector, suffix){names(df) <- 
                   ifelse(names(df) %in% vector,names(df), 
                   paste(suffix, names(df), sep = ".")) }

data(mtcars)
temp.mtcars <- mtcars
baRadd(temp.mtcars, c("mpg", "cyl", "disp"), "baR")  
Run Code Online (Sandbox Code Playgroud)

初始函数形式为flodel

data(mtcars)
# head(mtcars)

temp.mtcars <- mtcars
names(temp.mtcars) <- ifelse(names(mtcars) %in% c("mpg", "cyl", "disp"),
                         names(mtcars),
                         paste("baR", names(mtcars), sep = "."))
str(temp.mtcars)
'data.frame': 32 obs. of  11 variables:
 $ mpg     : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
 $ cyl     : num  6 6 4 …
Run Code Online (Sandbox Code Playgroud)

r function

0
推荐指数
1
解决办法
93
查看次数

标签 统计

r ×3

data.table ×1

function ×1

reshape2 ×1