R读取excel文件并选择特定的行和列

时间:2018-08-20 12:23:06

标签: r

我想将xls文件读入R并选择特定的列。例如,我只希望第1到10列和第5-700行。我认为您可以使用xlsx进行此操作,但是我不能在使用的网络上使用该库。我可以使用另一个软件包吗?我该如何选择想要的列和行?

谢谢

2 个答案:

答案 0 :(得分:2)

由于无法领导package TestScripts; import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.interactions.Actions; public class TestSemiCustom { public static void main(String[] args) { System.setProperty("webdriver.gecko.driver", "C:/geckodriver/geckodriver-v0.21.0-win64/geckodriver.exe"); //System.setProperty("webdriver.chrome.driver", "C:\\Users\\Hassan\\Documents\\eclipseworkspace\\WebDriverProject\\lib\\chromedriver.exe"); WebDriver driver = new FirefoxDriver(); //driver.manage().timeouts().implicitlyWait(40, TimeUnit.SECONDS); driver.get("http://www.example.com/"); driver.manage().timeouts().implicitlyWait(40, TimeUnit.SECONDS); String oldTab = driver.getWindowHandle(); Actions action= new Actions(driver); List<WebElement> socialMediaIcons = driver.findElements(By.xpath("//*[@id='ImageUrlNavigate']")); System.out.println("Size of list = " + socialMediaIcons.size()); for (WebElement AllSocial : socialMediaIcons) { String Name = AllSocial.getAttribute("href"); System.out.println(Name); AllSocial.click(); } driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS); action.keyDown(Keys.CONTROL).keyDown(Keys.SHIFT).sendKeys(Keys.TAB).build().perform(); } } 软件包,您可能需要考虑使用xlsx R并使用base。为此,请将Excel文件另存为csv。有关如何执行此操作的说明可以在网上轻松找到。请注意,csv文件仍然可以用Excel打开。

这些是仅读取第二和第三列和行所需要执行的步骤。

read.csv

这是我使用的示例数据。

hd = read.csv('a.csv', header=F, nrows=1, as.is=T) # first read headers
removeCols <- c('NULL', NA, NA) #define which columns to keep/remove

df <- read.csv('a.csv', skip=2, header=F, colClasses=removeCols) #skip says which rows not to read
colnames(df) <- hd[is.na(removeCols)]

df

  two three
1   5     8
2   6     9

答案 1 :(得分:1)

您可以尝试以下方法:

const test= new Map();

test.set('isZero', (v) => console.log(v === 0));
test.set('isNumber', (v) => console.log(typeof v === 'number'));

const value = 10;

for(let [key, fn] of test){
  // console.warn(key);
  fn(value);
}