r 中的嵌套循环
Nested Loop in r
我在用 r 编写算法时遇到问题,在 python 中这不是什么大问题,但 r 的语法让我失望了。
我想将 z 和 nums 的第一个索引设置为彼此相等并将其放入列表中。
一旦进入列表,我想打印一个负数的字母。
然后我想打印对应于 j k 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
你可以做的是(使用你的数据):
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
我在用 r 编写算法时遇到问题,在 python 中这不是什么大问题,但 r 的语法让我失望了。 我想将 z 和 nums 的第一个索引设置为彼此相等并将其放入列表中。 一旦进入列表,我想打印一个负数的字母。 然后我想打印对应于 j k 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
你可以做的是(使用你的数据):
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