小编Ern*_*nie的帖子

在R中写入和读取3D数组

我在R中构建了一个3D数组(尽管名称似乎没有显示):

v.arr <- array(1:18, c(2,3,3), dimnames = c("A", "B", "X",
                          "Y","Z","P","Q","R"))
Run Code Online (Sandbox Code Playgroud)

当它打印到屏幕上时会显示如下:

, , 1

     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

, , 2

     [,1] [,2] [,3]
[1,]    7    9   11
[2,]    8   10   12

, , 3

     [,1] [,2] [,3]
[1,]   13   15   17
[2,]   14   16   18
Run Code Online (Sandbox Code Playgroud)

我使用以下方法将其写入文件:

write.table(v.arr, file = “Test Data”)
Run Code Online (Sandbox Code Playgroud)

然后我再读一遍:

test.data <- read.table(“Test Data”)
Run Code Online (Sandbox Code Playgroud)

我明白了

  X1 X2 X3 X4 X5 X6 X7 X8 X9
1  1  3  5  7 …
Run Code Online (Sandbox Code Playgroud)

arrays r file data-structures

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

如何将N个命名的空数据帧初始化为R中的列表?

我想初始化N个命名的空数据帧,每个数据帧中有X行和Y列,并将它们放在一个列表中.稍后我将通过添加计算向量来填充它们.这是我所知道的一个新手问题,但是如何做到这一点呢?例如:

my.names <- c("G", "H", "J")
N <- 3
my.list <- ???  ## how?
Run Code Online (Sandbox Code Playgroud)

(根据回复编辑...)我采用这种方法的原因是我有一个很大的循环,每次循环都会创建N个向量.我需要在每次迭代时保存这些结果.我打算做以下事情:

for(i in 1:N) my.list[[i]] <- my.vec[i]
Run Code Online (Sandbox Code Playgroud)

在循环中的每个传递.3D数据框或矩阵也可以做同样的事情.

r dataframe

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

如何在R中添加不等长的命名向量

这一定很容易,但我似乎无法使其发挥作用.我有两个不等长的命名向量:

x <- as.vector(c(5, 10,15,20))
names(x) <- c("A", "B", "C", "D")
y <- as.vector(c(7, 12))
names(y) <- c("A", "D")
Run Code Online (Sandbox Code Playgroud)

我想添加它们并保留最长的命名约定.我希望x + y能够产生:

A   B   C   D
12  10  15  32
Run Code Online (Sandbox Code Playgroud)

我已经尝试使长度与其他地方建议的相等,并允许算术,但不保留命名约定.我也尝试过这样的事情:

z <- x[names(y)] + y
Run Code Online (Sandbox Code Playgroud)

但这让我得到算术,但不保留结构.

r vector

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

用R中另一个命名向量的值替换命名向量中的值

我有两个向量,说:

x <- c(2, 3, 5, 7, 9, 11)
names(x) <- c("a", "b", "c", "d", "e", "f")
y <- c(33,44,55)
names(y) <- c("b", "d", "f")
Run Code Online (Sandbox Code Playgroud)

所以那x

a  b  c  d  e  f 
2  3  5  7  9 11 
Run Code Online (Sandbox Code Playgroud)

并且y

 b  d  f 
33 44 55 
Run Code Online (Sandbox Code Playgroud)

我想xy具有相同名称的值替换其中的值,以便结果将是新的x

a  b  c  d  e  f 
2 33  5 44  9 55 
Run Code Online (Sandbox Code Playgroud)

我敢肯定这已经在某个地方得到了回答,但是我找不到。

r

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

如何在数据框中抓取双排列的第一个实例?

我有几个项目的集群数据,这些项目也有与之关联的排名.群集和排名数据框如下所示:

   clus   rank
A    1    1
B    1    3
C    1    5
D    2    4
E    2    6
F    3    9
G    3    8
H    3    7
Run Code Online (Sandbox Code Playgroud)

我想只获取每个集群中的第一个名称和排名,但只获取每个集群中的单个项目,以便我得到:

A    1
D    4
F    9
Run Code Online (Sandbox Code Playgroud)

我可以用一些for循环来做这个,但必须有一个更好的方法.建议表示赞赏.

sorting r

2
推荐指数
1
解决办法
98
查看次数

是否有R代码将焦点移动到RStudio控制台?

我的代码完成执行后,我一直在输入RStudio的编辑窗口,当时我的目的是在控制台窗口中提供一些输入.是否有可以执行的R代码会自动将焦点移动到RStudio的控制台窗口?

rstudio

2
推荐指数
1
解决办法
131
查看次数

如何在数据帧列上进行标量乘法

我确定这个人就坐在我面前,但我看不到它.我有一个数据框,"a",这样:

>a
         Chars    Numbers
This      A        15
That      B        22
Other     C        18
Run Code Online (Sandbox Code Playgroud)

我只想将Numbers列乘以标量,比如b < - 10,并保持数据框的其他部分不变.(我会在结果的Numbers列中得到150,220,180,但是相同的行/列标题和Chars列.)

什么不起作用是*b,尝试使用apply或$ Numbers*b.

r dataframe

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

如何将向量的打印列与sprintf(R)对齐

假设我在R中有3个向量:

x <- c("xskdlfl", "  y", "lkjsf")
y <- c(22.5, 6, 7.0)
z <- c("slk","llkjdf", "xx")
Run Code Online (Sandbox Code Playgroud)

我想产生一个格式化的表格输出,最右边的字符对齐,除第一列外的所有列都这样对齐:

xskdlfl        y     lkjsf
22.5         5.6       7.0
slk       llkjdf        xx
Run Code Online (Sandbox Code Playgroud)

在R中没有太多凌乱的编程的情况下,我无法弄清楚如何使用sprintf做到这一点。在R中使用sprintf可以做到这一点的简单方法吗?使用“格式?” 我希望链接到一个好的sprintf教程。提前致谢。

c formatting r

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

标签 统计

r ×7

dataframe ×2

arrays ×1

c ×1

data-structures ×1

file ×1

formatting ×1

rstudio ×1

sorting ×1

vector ×1