小编Tho*_*ing的帖子

在 A 列中查找大于 0 的第一个值的位置,并在 B 列中的该位置返回值

我是 R 的新手,我正在努力解决这个问题:我想评估 A 列中的值并获得该列中第一个非零值的位置。然后,我想获取在 B 列中找到的位置的值。这需要在与此类似的数据框中发生。

A栏 B栏
0 1998年
0 1997年
2 1996年
3 1995年

所以输出应该是:1996。

我试过使用 match() 没有成功。先感谢您。

r subset dataframe

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

查找任何指定行的单元格值为 1 的所有列名

这是我对我的项目的一个问题。

假设我有这个数据集。

  X1 X2 X3 X4
1  1  2  1  3
2  1  3  2  1
3  1  3  4  2
4  1  1  2  3
5  3  4  3  2
6  2  1  3  4
Run Code Online (Sandbox Code Playgroud)

从这个数据集中,我希望能够指定任何随机行并找出单元格等于 1 的列名。例如,如果我要指定第一行,那么我将得到X1X3作为我的输出。同样,如果我要指定第二行,那么我将得到X1X4作为我的输出。如果我要指定第三行,那么我会得到X1我的输出。

我希望这些例子有意义。我在 StackOverflow 上环顾四周,但找不到我要找的东西。如果您能帮我解决这个问题,我将不胜感激。

r dataframe

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

如何选择R中与其他组相关的组中最常见的值?

我在 R 中有以下数据框:

ID = c(rep(1,5),rep(2,3),rep(3,2),rep(4,6));ID
VAR = c("A","A","A","A","B","C","C","D",
             "E","E","F","A","B","F","C","F");VAR
CATEGORY = c("ANE","ANE","ANA","ANB","ANE","BOO","BOA","BOO",
        "CAT","CAT","DOG","ANE","ANE","DOG","FUT","DOG");CATEGORY

DATA = data.frame(ID,VAR,CATEGORY);DATA
Run Code Online (Sandbox Code Playgroud)

如下表所示:

ID VAR 类别
1 A 安尼
1 A 安尼
1 A 全日空航空公司
1 A ANB
1 安尼
2 C 嘘声
2 C 蟒蛇
2 D 嘘声
3
3
4 F
4 A 安尼
4 安尼
4 F
4 C 氟尿嘧啶
4 F

给定 RI 中上述数据帧的理想输出希望是这样的:

ID 文本 类别
1 A 安尼
2 C …

sorting group-by r

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

根据R中另一列的值计算一列的值

我想使用数据框创建一个新数据框,其中包含邮政编码、名称和名为计数的列,该列将包括每个邮政编码的名称计数。

Zip<-c("123245","12345","123245","123456","123456","12345")
Name<-c("Bob","Bob","Bob","Jack","Jack","Mary"),
df<-data.frame(Zip,Name,Name2)

library(dplyr)
df %>%
  group_by(Zip) %>%
  mutate(Name = cumsum(Name))
Run Code Online (Sandbox Code Playgroud)

预期的

Zip Name Count
1 123245  Bob     2
2  12345  Bob     1
3  12345 Mary     1
4 123456 Jack     2
Run Code Online (Sandbox Code Playgroud)

group-by r summarize

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

将命名向量转换为 R 中的对称矩阵?

已经提出了类似的问题,但是,没有一个问题需要分割向量名称,所以我提出了一个新问题。

我正在尝试将命名向量转换为 R 中的对称矩阵。我的向量包含矩阵中每个值组合的名称。所以我需要将名称分成各个组成部分。

例如,如果我的数据如下所示:

v <- c(
  "x1 x2" = 0.81899860,
  "x1 x3" = 0.10764701,
  "x2 x3" = 0.03923967,
  "x1 x4" = 0.03457240,
  "x2 x4" = 0.05954789,
  "x3 x4" = 0.15535316,
  "x1 x5" = 0.04041266,
  "x2 x5" = 0.05421003,
  "x3 x5" = 0.09198977,
  "x4 x5" = 0.15301872
)
Run Code Online (Sandbox Code Playgroud)

我们可以看到每个名称都是 2 个变量的组合。我试图将其转换为对称矩阵(对角线为零)。为了清楚起见,我想要的输出如下:

           x1         x2         x3         x4         x5
x1 0.00000000 0.81899860 0.10764701 0.03457240 0.04041266
x2 0.81899860 0.00000000 0.03923967 0.05954789 0.05421003
x3 0.10764701 0.03923967 0.00000000 0.15535316 0.09198977
x4 0.03457240 0.05954789 0.15535316 0.00000000 …
Run Code Online (Sandbox Code Playgroud)

r matrix

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

如何匹配两个数据帧的字符值并在 R 中应用与此匹配相对应的函数?

我有两个数据框,如下所示:

\n
\nlibrary(tidyverse)\ndate = c(rep(as.Date("2022-01-01"),4),rep(as.Date("2022-02-01"),4),rep(as.Date("2022-03-01"),3))\nA = seq(1,11,1)\nB = seq(12,22,1)\nC = seq(23,33,1)\nsymbol = c(rep("A",4),rep("B,C",4),rep("D,A",3))\ndf1 = tibble(date,A,B,C,symbol);df1\n# A tibble: 11 \xc3\x97 5\n   date           A     B     C symbol\n   <date>     <dbl> <dbl> <dbl> <chr> \n 1 2022-01-01     1    12    23 A     \n 2 2022-01-01     2    13    24 A     \n 3 2022-01-01     3    14    25 A     \n 4 2022-01-01     4    15    26 A     \n 5 2022-02-01     5    16    27 B,C   \n 6 2022-02-01     6    17    28 B,C   \n 7 2022-02-01     7    18    29 B,C   \n …
Run Code Online (Sandbox Code Playgroud)

r match conditional-statements dataframe dplyr

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

查找嵌套列表的哪些元素是数据框

假设我有一个如下所示的嵌套列表

\n
test <- list(\n  a = data.frame(x = 1),\n  b = "foo",\n  c = list(\n    d = 1:5,\n    e = data.frame(y = 1),\n    f = "a",\n    list(g = "hello")\n  )\n)\ntest\n#> $a\n#>   x\n#> 1 1\n#> \n#> $b\n#> [1] "foo"\n#> \n#> $c\n#> $c$d\n#> [1] 1 2 3 4 5\n#> \n#> $c$e\n#>   y\n#> 1 1\n#> \n#> $c$f\n#> [1] "a"\n#> \n#> $c[[4]]\n#> $c[[4]]$g\n#> [1] "hello"\n
Run Code Online (Sandbox Code Playgroud)\n

我想知道这个嵌套列表中字符元素的位置。在这种情况下,我想返回一个命名向量或命名列表,其中TRUE元素是否为字符,FALSE否则返回。

\n

我可以用 来做到这一点rapply,它会取消列出所有内容:

\n
rapply(test, is.character)\n#>   a.x     b   c.d c.e.y …
Run Code Online (Sandbox Code Playgroud)

r nested-lists

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

如何从R中的字符串数组中获取平均值?

我有这个字符串变量。

x <- "[2,3,3,5]"

我想得到这个的平均值。我怎样才能在 R 上实现这一目标?

string r

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

根据另一个数据帧的两个日期汇总行值

这是我的数据:

df1 <- fread('
   id ,      date1 ,    date2     
  id_0001 , 2017-01-01, 2017-01-05
  id_0002 , 2017-01-02, 2017-01-08
  id_0003 , 2017-01-04, 2017-01-07
 ')


df2<- fread('
        date ,     value     
        2017-01-01,   1
        2017-01-02,   2
        2017-01-03,   5
        2017-01-04,   5
        2017-01-05,   5 
        2017-01-06,   3
        2017-01-07,   4
        2017-01-08,   7
        2017-01-09,   5
        2017-01-10,   1
        2017-01-11,   5 
 ')

Run Code Online (Sandbox Code Playgroud)

我想总结(获取平均值)每个from在 rowwise和之间的范围内的valuefrom 。df2iddf1date1date2

结果是这样的:

ID 日期1 日期2 价值
id_0001 2017-01-01 2017-01-05 mean(c(1,2,5,5,5))
id_0002 2017-01-02 2017-01-08 mean(c(2,5,5,5,3,4,7))
id_0003 2017-01-04 2017-01-07 mean(c(5,5,3,4))

我知道我可以扩展idby …

merge aggregate r data.table

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

按行对矩阵数据进行分组,并将结果显示为具有暗名称的矩阵

我有以下代码:

mat = matrix(c(1, 3, 4, 11, 13, 13), nrow = 2, ncol = 3, byrow = TRUE)
mat_grouped = apply(mat, 1, function(row) tapply(row, as.factor(row), length))
Run Code Online (Sandbox Code Playgroud)

输出如下列表:

[[1]]
1 3 4 
1 1 1 

[[2]]
11 13 
 1  2
Run Code Online (Sandbox Code Playgroud)

但是我希望输出显示为矩阵,其中列名称由矩阵中的所有值给出并按行分组:

     1 3 4 11 13
[1,] 1 1 1  0  0
[2,] 0 0 0  1  2
Run Code Online (Sandbox Code Playgroud)

可以以这种形式获取我的数据吗?

r matrix

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