r中的嵌套循环

威廉·伯纳德

我在用r编写算法时遇到麻烦,在python中这没什么大不了的,但是r的语法使我失望。我想将z和num的第一个索引设置为彼此相等,并将其放入列表中。一旦进入列表,我想打印一个负数的字母。然后,我想打印与jk l相对应的数字。

nums<-c(1.0, 3.0, -2, 8, -4, 4, 2, -3, 9, 1, 4, 2, 2, 1, 8, 2)
z<-c("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p")
lets<-c(j,k,l)
for (i in nums){
for(j in z) {
}}
list=((a,1),(b,3),(c,-2),(d,8),(e,-4),(f,4),(g,2),(h,-3),(i,9),(j,1),(k,4),(l,2),(m,2),(n,1),(o,8),(p,2))

negative=c,e,h,
letters=1,4,2
本杰明·莫恩(Benjamin Mohn)

您可以做的是(使用您的数据):

df <- data.frame(z,nums, stringsAsFactors = FALSE)

里面有所有字母和数字

    > df
   z nums
1  a    1
2  b    3
3  c   -2
4  d    8
5  e   -4
6  f    4
7  g    2
8  h   -3
9  i    9
10 j    1
11 k    4
12 l    2
13 m    2
14 n    1
15 o    8
16 p    2

然后,您可以访问所需的内容:

df$z[df$nums<0]

结果是:

[1] "c" "e" "h"

要获得j,k,l的数字,可以使用grepl:

df[grepl("[j,k,l]", df$z),]
   z nums
10 j    1
11 k    4
12 l    2

然后,您将再次拥有一个子数据框或仅用于数字操作:

df$nums[grepl("[j,k,l]", df$z)]
[1] 1 4 2

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章