gpt4 book ai didi

r - 如何在 Excel VBA 中复制 R 子集机制?

转载 作者:行者123 更新时间:2023-12-04 21:58:32 26 4
gpt4 key购买 nike

首先感谢您阅读我的帖子。

我想问如何在中复制R子集机制?

这是我的功能:

Subdeck2 = deck2[(deck2[,3]>=10 & deck2[,4]<=30),]

代码使用 创建 data.frame名为 Subdeck2 的对象它是 data.frame 的子集名为 deck2 的对象包含 deck2 的行第三列的值大于或等于十,第四列的值小于或等于三十。

我想在 中复制它,以及作为具有源数据的工作表的子集的工作表。我认为 中的数组命名对引用行和列很有帮助。

,当我必须重复执行此操作时,它往往会变得困惑,因为我必须记住我已经输入的行号和列号。

我只需要在 中做这件事.我已经买了一本关于 的书编程,但它有 1000 页长,我似乎无法在其中找到单词子集。

任何有关如何执行此操作或我可以在哪里学习执行此操作的建议将不胜感激。谢谢!

最佳答案

这是一个示例 - 远不如您的 简洁。功能虽然。

该方法已被注释 - 但基本上,它迭代源范围的行并检查每一行的条件。然后它选择输出范围并将其调整为输出前过滤数据的大小。

Option Explicit

Sub FilterLikeRSubset()

Dim rngData As Range
Dim rngRow As Range
Dim rngFilter As Range
Dim rngOutput As Range

'get data
Set rngData = ThisWorkbook.Worksheets("Sheet1").Range("A1:D5")

'iterate rows in data
For Each rngRow In rngData.Rows
'test row criteria
If rngRow.Cells(1, 3) >= 10 And rngRow.Cells(1, 4) <= 30 Then
'success
If rngFilter Is Nothing Then
Set rngFilter = rngRow
Else
Set rngFilter = Union(rngFilter, rngRow)
End If
End If
Next rngRow

'set range for output
Set rngOutput = ThisWorkbook.Worksheets("Sheet1").Range("A10")
Set rngOutput = rngOutput.Resize(rngFilter.Rows.Count, rngFilter.Columns.Count)

'output
rngOutput.Value = rngFilter.Value

End Sub

样本输出:

enter image description here

关于r - 如何在 Excel VBA 中复制 R 子集机制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39288699/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com