小编Wil*_*ips的帖子

使用基于匹配值的另一个数据帧更新一个数据帧中的列

我有一个数据框"z"

   letter color
1       a     0
2       e     0
3       b     0
4       b     0
5       d     0
6       d     0
7       a     0
8       b     0
9       c     0
10      d     0
11      c     0
12      c     0
13      c     0
14      c     0
15      e     0
16      e     0
17      a     0
18      d     0
19      e     0
20      b     0
Run Code Online (Sandbox Code Playgroud)

和另一个数据框"y"

  letter color
1      a   red
2      b  blue
3      c green
Run Code Online (Sandbox Code Playgroud)

当z中的字母与y中的字母匹配时,我想将y中的颜色附加到z中的相应颜色字段中,但我不想从z中删除任何值.如果没有匹配,z $ color应保持不变.我使用"0"作为z $颜色的占位符,这可能是文本而不是.

我一直在尝试for循环,match()命令和%in%的语句,但我还没有完全达到我想要的结果. …

r

23
推荐指数
2
解决办法
3万
查看次数

通过交替列组合矩阵

我正在寻找一种组合两个矩阵的通用方法,以便两个初始矩阵中的列在新矩阵中交替

col1m1 ... col1m2 ... col2m1 ... col2m2 ... col3m1 ... col3m2 ......

例如:

matrix.odd  <- matrix(c(rep(1,3),rep(3,3),rep(5,3)),nrow=3,ncol=3)
matrix.even <- matrix(c(rep(2,3),rep(4,3),rep(6,3)),nrow=3,ncol=3)
# would look like
matrix.combined <- matrix(c(rep(1,3),rep(2,3),rep(3,3),rep(4,3),rep(5,3),rep(6,3)),
                          nrow=3,ncol=6)
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种通用方法,因为我将使用超过3列的矩阵组合.我已经尝试了一些for循环和一些if语句,但它并没有真正为我而来.关于将矩阵与随机和交替相结合的搜索也没有被证明是富有成效的.有什么想法吗?

r matrix

15
推荐指数
3
解决办法
3985
查看次数

R在数据帧的列中标识文本字符串

我的数据框的一列有单词和短语.我正在尝试为此列中的那些字段创建一个虚拟变量,其中包含特定的文本字符串.

例如:

  • 风筝
  • 汽车
  • 盒子风筝
  • 模型车
  • 我喜欢放风筝
  • 世界汽车

     myvector<-c("kite","cars","box kites","model cars","i like kites that fly",
     "cars of the world")
    
    Run Code Online (Sandbox Code Playgroud)

我想用字符串"kite"识别所有字段

我已经尝试了一些东西,比如any(),which()%in%但至今没有奏效.

任何帮助非常感谢

r

7
推荐指数
1
解决办法
3万
查看次数

按日期范围分组

这似乎是一项简单的任务,但我在执行它时遇到了困难,并且找到了如何在R中完成它的示例.

我有一个大约75K记录的数据框.一个领域有日期,可以追溯到大约11年.我已经使用以下代码去除小时分钟秒,所以我只有一个月 - 一天

 dat$date=round.POSIXt(dat$date,units="day")
Run Code Online (Sandbox Code Playgroud)

我现在正在尝试根据日期创建一个新的字段"FiscalYear",如果日期是在2008-07-01和2009-06-30之间,那么它将在2009-07-01和2010之间分配给... 06-30被分配到2010财年等......

我一直在尝试的方法是使用ifelse> = && <=来设置日期范围,但这不起作用.有什么想法吗?

r date

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

嵌套 for 循环的效率

我创建了以下代码,将 for 循环嵌套在 R 中的 for 循环内。它是计算 Power 的模拟。我读到 R 不太适合执行 for 循环,但我想知道是否可以应用任何效率来使其运行得更快一些。我对 R 以及任何类型的编程都很陌生。现在我看到的运行时间是:

m=10 我得到 0.17 秒

m=100 我得到 3.95 秒

m=1000 我得到 246.26 秒

m=2000 我得到 1003.55 秒

我希望将采样次数设置为 100K 以上,但恐怕甚至无法将其设置为 10K

这是代码:

m = 1000                        # number of times we are going to  take samples
popmean=120                     # set population mean at 120
popvar=225                      # set known/established population 
variance at 225
newvar=144                      # variance of new methodology 
alpha=.01                       # set alpha
teststatvect = matrix(nrow=m,ncol=1)    # empty vector …
Run Code Online (Sandbox Code Playgroud)

r

3
推荐指数
1
解决办法
358
查看次数

按矩阵的列查找满足某些条件的值的百分比

我创建了一个 8 x 1000 的 Exp() 变量矩阵。这表示从指数分布中采样 8 次的 1000 次迭代(列)。我想弄清楚如何获得每列中小于临界值的值的百分比。所以我最终得到了一个 1000 百分比的向量。我已经尝试了几件事,但对 R 来说仍然相对较新,我遇到了一些困难。

这是我当前版本的代码,不太有效。当我想要样本的均值或方差时,我使用了 apply 函数(没有 for 循环),所以我一直在尝试这种方法,但这个百分比似乎需要一些不同的东西。有什么想法吗?

 m=1000
 n=8
 theta=4
 crit=3
 x=rexp(m*n,1/theta)

 Mxs=matrix(x,nrow=n)

 ltcrit=matrix(nrow=m,ncol=1)

 for(i in 1:m){
    lt3=apply(Mxs,2,length(which(Mxs[,i]<crit)/n))
    }

 ltcrit
Run Code Online (Sandbox Code Playgroud)

r

3
推荐指数
2
解决办法
1325
查看次数

标签 统计

r ×6

date ×1

matrix ×1