replace.value(zdata, c(1), DL[1], 0)
replace.value(zdata, c(2), DL[2], 0)
replace.value(zdata, c(3), DL[3], 0)
replace.value(zdata, c(4), DL[4], 0)
replace.value(zdata, c(5), DL[5], 0)
replace.value(zdata, c(6), DL[6], 0)
replace.value(zdata, c(7), DL[7], 0)
replace.value(zdata, c(8), DL[8], 0)
我需要为数据帧的每一列将特定值(在DL向量中给出)更改为0。例如,DL向量的第一个值为0.5,因此上面代码的第一行在数据帧的第一列中每0.5更改为0。
答案 0 :(得分:2)
是的。让我们进行一些改进。首先,public class FundingRequestData {
private ArrayList<FundingRequest> fundingRequests;
private ArrayList<FixedFundingRequest> fixedFundingRequests;
private ArrayList<TrackerFundingRequest> trackerFundingRequests;
private static FundingRequestData instance = new FundingRequestData();
public static FundingRequestData getInstance() { return instance; }
public FundingRequestData() {
this.fundingRequests = new ArrayList<>();
this.fixedFundingRequests = new ArrayList<>();
this.trackerFundingRequests = new ArrayList<>();
}
public FundingRequestData(ArrayList<FundingRequest> fundingRequests) {
// loop through objects & use add methods to initialise arrays
}
public void add(FixedFundingRequest newFundingRequest) {
this.fundingRequests.add(newFundingRequest);
this.fixedFundingRequests.add(newFundingRequest);
}
public void add(TrackerFundingRequest newFundingRequest) {
this.fundingRequests.add(newFundingRequest);
this.trackerFundingRequests.add(newFundingRequest);
}
public ArrayList<FundingRequest> getFundingRequests() {
return fundingRequests;
}
public ArrayList<FixedFundingRequest> getFixedFundingRequests() {
return fixedFundingRequests;
}
public ArrayList<TrackerFundingRequest> getTrackerFundingRequests() {
return trackerFundingRequests;
}
}
代表 concatenate ,意思是“把东西粘在一起”。如果只有一件事,则不需要c()
。 c()
与5
相同,c(5)
与"hello"
相同,依此类推。
c("hello")
循环可让您循环特定的值。您在每行代码中更改的值从1到8,因此我们将对其进行循环:
for
我不知道for (val in 1:8) {
replace.value(zdata, val, DL[val], 0)
}
函数(并且您没有提到它所在的包),但是您没有分配结果似乎很奇怪。在基数R中,您将执行以下操作:
replace.value
使用zdata[1][zdata[1] == DL[1]] <- 0
zdata[2][zdata[2] == DL[2]] <- 0
...
分配结果,以便将其保存。那会变成这个for循环:
<-
答案 1 :(得分:0)
如果您想更明确地使用tidyverse
,可以使用类似walk
library(tidyverse)
walk(1:8, ~replace.value(zdata, .x, DL[.x], 0))